PHP, Как установить include path

Я писал:

include('a.php')
include('b.php')

и т.д.. в моем script включить функции a() и b(). Это становится довольно утомительным. Есть ли способ установить путь к каталогу и открыть несколько файлов с помощью script?

  • Я пробовал это в своем script:

    set_include_path('.;C:\xampp\htdocs\myfunctionfolder');
    
  • И я установил переменную окружения PATH, чтобы она была там старше.

  • Я также в модифицированном php.ini включил

    include_path = ".;\xampp\php\PEAR;\xampp\htdocs\myfunctionfolder"
    

Если у меня есть много файлов, как мне получить доступ к этим файлам без необходимости включать их отдельно? Настройка переменной окружения определенно работает в командной строке.

Мне нужно сделать что-то еще для файлов .php, чтобы они были доступны под общим каталогом?

Ответ 1

Обычная практика заключается в том, чтобы иметь файл common.php или include.php, который включает вызовы include/include_once (для простоты). например.

  • корень
  • [Lib]
    • a.php
    • b.php
    • includes.php
  • index.php

Затем includes.php содержит:

<?php
  include_once('a.php');
  include_once('b.php');
?>

Затем в любом script вопрос включает файл includes.php.

Однако, чтобы ответить на ваш исходный вопрос, вы можете включать только один файл за раз, за ​​звонок. Вы можете использовать что-то вроде opendir и readdir для итерации по всем файлам в определенном каталоге и включать их как найденные (автоматизированные так называемые) или выписывать каждый из них, включая вас, на основе создаваемых вами файлов.

Кроме того, при настройке входящего пути устанавливается каталог, в который нужно искать, когда выполняется вызов include. Это не каталог, где файлы должны быть загружены автоматически (это впечатление, которое я получаю от вашего сообщения).

Ответ 2

Настройка include_path не будет включать в себя все файлы в этом каталоге, она добавляет только этот каталог в список, который будет искать PHP при включении файла.

Задает список каталогов, в которых функции require(), include(), fopen(), file(), readfile() и file_get_contents() ищут файлы.

Источник

Это упростит включение файлов в глубокую структуру или в совершенно другой раздел файловой системы.

include('/var/somewhere/else/foo.php');

С /var/somewhere/else/, добавленным в путь php.ini include_path, может стать

include('foo.php');

Кроме того, как указывали другие, существуют общие практики, но вы можете изучить классы OOPHP и для автозагрузки. Это не будет работать для функций, о которых я знаю.

Многие разработчики, пишущие объектно-ориентированные приложения, создают одно определение исходного кода PHP для каждого класса. Одно из самых больших неприятностей - писать длинный список необходимых включений в начале каждого script (по одному для каждого класса).

В PHP 5 это больше не требуется. Вы можете определить функцию __autoload, которая автоматически вызывается в случае, если вы пытаетесь использовать класс/интерфейс, который еще не определен. Вызывая эту функцию, механизму сценариев дается последний шанс загрузить класс до того, как PHP завершится с ошибкой.

Ответ 3

см. этот вопрос:

Как включить() все файлы PHP из каталога?

Кроме того, с точки зрения передовой практики вы можете включить несколько функций в один и тот же файл, если они вообще связаны, и я также предложил бы иметь более описательные имена ваших функций и файлов. Например, если ваши функции a() и b() связаны, например, с валидацией, назовите файл validation.php и поместите обе функции туда и попробуйте переименовать их в нечто, что связано с тем, что они делают. Это позволит вам помнить, что они делают, когда вы начинаете накапливать огромный список функций;)

Ответ 4

Парсер PHP довольно эффективен - вы потратите больше времени на загрузку тонны отдельных файлов вместо одного (или нескольких) более монолитных файлов. Однако, если вы настаиваете на том, чтобы все это было разделено, вы можете создавать мета файлы для загрузки наборов отдельных файлов, поэтому вы должны включать только один файл мета-включения, и он делает остальное для вас:

meta.php:

include('a.php');
include('p.php');
...
include('z.php');

И тогда вы просто выполните:

<?php

include('meta.php');

в ваших сценариях, и у вас есть все отдельные, загруженные для вас.

Ответ 5

У меня есть такая функция в большинстве моих проектов:

function appendToIncludePath($path)
{
    ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . BASE_DIR . $path . DIRECTORY_SEPARATOR);
}

Ответ 6

include __DIR__ . '/../folder1/folder2/folder3/Target.php';
include __DIR__ . '/../folder1/folder2/Target.php';

Это поможет вам пойти по любому пути.

Ответ 7

Загрузите последнюю версию PHP zip и распакуйте ее на диск C, затем загрузите composer и установите его, во время установки он запрашивает путь PHP, поэтому просто выберите извлеченный путь PHP.

Как следовать ниже шаг.

  1. Перейти к Computer.

  2. Выберите Дополнительные Advance System Settings.

  3. В свойствах системы выберите " Environmental Varaibles.
  4. В Environmental Varaibles добавьте Path в пользовательскую переменную для PCNAME.
  5. В Environmental Varaibles добавьте Path в системные переменные.
  6. Хит ОК.
  7. Перезагрузите компьютер.
  8. Win + R тип cmd.
  9. введите команду php -v.
  10. Воля тебе хорошо идти.

PHP http://php.net/downloads.php

Композитор https://getcomposer.org/download/