2013-06-24 5 views
9

Opracowuję projekt z Yii.Yii: wymaganie pliku .php

Potrzebuję wymagać zwykłego pliku .php (nie komponentu, nie klasy, tylko zwykły ciąg definicji funkcji PHP). Jaki jest prawidłowy sposób to zrobić w ramach Yii? Czy powinienem używać plain require_once()?

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

Dobrze?

Odpowiedz

9

Tak, to prawda.

Przykład:

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

Wymagaj nie jest funkcją, nie ma potrzeby '()': To ma rację: 'require_once Yii :: app() -> basePath. '/extensions/PearMail/Mail-1.2.0/Mail.php'; ' – lin

+0

@lin: Wiem, że to jest instrukcja, a nie funkcja. Twoja wersja z pewnością wygląda bardziej przyjemnie, ale nie sądzę, że to ma znaczenie, którego używasz (może z wyjątkiem czytelności). –

+0

Yii :: $ app jest statycznym var dla klasy aplikacji Yii2, "yii \ web \ Application". Próbowałem tego i zadziałało dla mnie require_once Yii :: $ app-> basePath. "/extensions/PearMail/Mail-1.2.0/Mail.php"; –

6

Metoda w pytaniu jest w porządku, ale wymusza lokalizację pliku zawsze w tym samym folderze.

Elastyczna Yii::import jest przeznaczona do ładowania tylko klas i tylko klas, których nazwa jest taka sama jak nazwa pliku.

Jednak jeśli chcesz używać aliasów, aby uzyskać ścieżkę do pliku, nadal można korzystać z aliasy za pomocą getPathOfAlias, tak:

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

Aby dołączyć plik w stosunku do bieżącego pliku dobrze jest używać dirname(__FILE__) lub __DIR__ (PHP 5.3+)

require_once __DIR__ . '/some-file.php';