2013-06-24 20 views
9

Yii ile bir proje geliştiriyorum.Yii: bir .php dosyası gerektiriyor

Düz bir .php dosyasına ihtiyacım var (bileşen değil, bir sınıf değil, yalnızca PHP işlev tanımlarının düzenli bir sırası). Bunu Yii çerçevesinin altında yapmanın doğru yolu nedir? Plain require_once() kullanmalı mıyım?

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

Doğru?

cevap

9

Evet, bu doğru.

Örnek: Bu haklı::

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

gerektir bir işlev, '()' gerek olmadığını 'Require_once Yii :: app() -> BasePath. '/extensions/PearMail/Mail-1.2.0/Mail.php'; ' – lin

+0

@lin: Bunun bir ifade olduğunu ve bir işlev olmadığını biliyorum. Sürümünüz kesinlikle daha hoş görünüyor, ama hangisinin kullandığınızı önemli değil (okunabilirlik, belki de). –

+0

Yii :: $ app, Yii2 Application sınıfı, 'yii \ web \ Application' için statik var. Bunu denedim ve benim için çalıştı require_once Yii :: $ app-> basePath. '/extensions/PearMail/Mail-1.2.0/Mail.php'; –

6

Sorunuzdaki yöntem düzgün, ancak her zaman aynı klasörde olması için dosya konumunu zorlar. Esnek Yii::import yalnızca sınıfları yüklemek için ve yalnızca adı dosya adı ile aynı olan sınıflar için tasarlanmıştır.

Ancak dosyaya yolunu almak için takma ad kullanmak istiyorsanız, yine bunun gibi, getPathOfAlias kullanarak diğer adları yararlanabilir:

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

o dirname(__FILE__) kullanmak iyidir geçerli dosyaya dosya göre eklemek için ya __DIR__ (php 5.3+)

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