2013-06-24 2 views
9

Я разрабатываю проект с Yii.Yii: требуется файл .php

Мне нужен простой .php-файл (не компонент, а не класс, просто регулярная последовательность определений функций PHP). Каков правильный способ сделать это в рамках Yii? Должен ли я использовать простой require_once()?

require_once(Yii::app()->basePath . '/extensions/my-php-file.php');

Справа?

ответ

9

Да, это правильно.

Пример:

require_once Yii::app()->basePath . '/extensions/PearMail/Mail-1.2.0/Mail.php'; 
+0

Требуют не является функцией, нет необходимости в '()': Это верно: 'require_once Yii :: приложение() -> BasePath. '/extensions/PearMail/Mail-1.2.0/Mail.php'; ' – lin

+0

@lin: Я знаю, что это утверждение, а не функция. Ваша версия, безусловно, выглядит более приятной, но я не думаю, что это важно, какой из них вы используете (за исключением читаемости, возможно). –

+0

Yii :: $ app - это статический var для класса приложений Yii2, 'yii \ web \ Application'. Я пробовал это, и это сработало для меня require_once Yii :: $ app-> basePath. '/extensions/PearMail/Mail-1.2.0/Mail.php'; –

6

Метод в вашем вопросе в порядке, но заставляет местоположение файла всегда находиться в одной папке.

Гибкий Yii::import предназначен только для загрузки классов и только классов, имя которых совпадает с именем файла.

Однако, если вы хотите использовать псевдонимы, чтобы получить путь к файлу, вы можете воспользоваться псевдонимами, используя getPathOfAlias, как это:

require_once Yii::getPathOfAlias('application.extensions.my-php-file') . '.php'; 

Чтобы включить файл относительно текущего файла хорошо использовать dirname(__FILE__) или __DIR__ (PHP 5.3+)

require_once __DIR__ . '/some-file.php'; 
Смежные вопросы