2013-06-24 12 views
9

Sviluppo un progetto con Yii.Yii: richiede un file .php

Ho bisogno di richiedere un file .php semplice (non componente, non una classe, solo una sequenza regolare di definizioni di funzioni PHP). Qual è il modo corretto di farlo nel quadro di Yii? Dovrei usare plain require_once()?

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

Giusto?

risposta

9

Sì, è corretto.

Esempio:

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

richiederà non è una funzione, senza bisogno di '()': Questo è giusto: 'require_once Yii :: app() -> basePath. '/extensions/PearMail/Mail-1.2.0/Mail.php'; ' – lin

+0

@lin: So che è una dichiarazione e non una funzione. La tua versione sembra certamente più piacevole, ma non penso che importi quello che usi (tranne che per la leggibilità, forse). –

+0

Yii :: $ app è la variabile statica per la classe dell'applicazione Yii2, 'yii \ web \ Application'. ho provato questo e ha funzionato per me require_once Yii :: $ app-> basePath. '/extensions/PearMail/Mail-1.2.0/Mail.php'; –

6

Il metodo nella tua domanda va bene, ma impone che il percorso del file sia sempre nella stessa cartella.

flessibile Yii::import è destinata ad essere solo le classi di carico, e solo le classi il cui nome è uguale il nome del file.

Tuttavia, se si desidera utilizzare gli alias per ottenere il percorso di file, si può ancora beneficiare di alias utilizzando getPathOfAlias, come quella:

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

Per includere file relativo al file corrente è bene usare dirname(__FILE__) o __DIR__ (PHP 5.3+)

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