2016-02-07 2 views
-1

Это, как я включать файлы в index.php сейчас:Как использовать автозагрузку для включения php-файлов?

<?php include('class.register.php');?> 

<!--additional files starts--> 
<?php include('register/register-form.php');?> 
<?php include('register/browse.php');?> 
<?php include('register/alldone.php');?> 
<?php include('search/browse.php');?> 
<?php include('search/mobile-left-column.php');?> 
<?php include('profile/mygloopal.php');?> 
<?php include('profile/profile.php');?> 
<?php include('profile/details.php');?> 
<?php include('profile/posts.php');?> 
<?php include('profile/create_post.php');?> 
<?php include('profile/browse-search.php');?> 
<?php include('profile/review.php');?> 
<?php include('how.php');?> 
<?php include('search/more-options.php');?> 

Я имею в виду этого учебника, чтобы изучить autoload с пространствами имен:

http://www.zainabed.com/2014/11/php-tutorials-autoload-php-classes.html 

Но он использует classname определить страницу. Для моего случая выше, класс не должен включать файлы. Как мне это сделать, пожалуйста?

+0

ли дополнительные классы файлов или просто файлы для создания страницы? – Rasclatt

+0

@ Rasclatt, это всего лишь файлы для всплывающих окон – 112233

+0

Как вы догадались, автозагрузчик в этом учебнике не принесет вам пользы, если они не являются классами. Авто, включающее использование папки сканирования, - это все, что вы могли бы сделать на самом деле. – Rasclatt

ответ

0

Вопрос немного неясен, поэтому я отвечу на него, насколько я его понимаю. Если файлы, которые вы обозначили как <!--additional files starts-->, не являются классами или являются классами, но не имеют имени, где spl_autoload_register() является вариантом, я обычно делаю функцию или класс для автоматического включения файлов для меня. Вот лишь пример. Это неизбирательного, то есть она будет загружать все в папке, но вы можете передать второй из параметров, который является массивом, который сообщает ему, что конкретно к нагрузке:

class AutoloadFiles 
    { 
     public function fInclude($dir = false) 
      { 
       // If the directory does not exist, just skip it 
       if(!is_dir($dir)) 
        return $this; 
       // Scan the folder you want to include files from 
       $files = scandir($dir); 
       // If there are no files, just return 
       if(empty($files)) 
        return false; 
       // Loop through the files found 
       foreach($files as $file) { 
        // Include the directory 
        $include = str_replace("//","/","{$dir}/{$file}"); 
        // If the file is a php document, include it 
        if(is_file($include) && preg_match('/.*\.php$/',$include)) 
         include_once($include); 
       } 
       // Return the method just so you can chain it. 
       return $this; 
      } 
    } 

Применение:

$iEngine = new AutoloadFiles(); 
$iEngine ->fInclude(__DIR__) 
      ->fInclude(__DIR__.'/classes/') 
      ->fInclude(__DIR__.'/functions/'); 
Смежные вопросы