2013-06-24 13 views
9

私はYiiでプロジェクトを開発します。Yii:.phpファイルが必要

普通の.phpファイル(コンポーネントではなく、クラスではなく、PHP関数定義の通常のシーケンス)を必要とします。 Yiiフレームワークの下でこれを行う正しい方法は何ですか?プレーンなrequire_once()を使うべきですか?

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

右か?

答えて

9

はい、それは正しいのです。

例:これは権利ではありません: - > basePathを `のrequire_onceのYii ::アプリ()

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

が必要では')( 'は不要、関数ではありません。 '/extensions/PearMail/Mail-1.2.0/Mail.php'; ' – lin

+0

@lin:私は文であり、関数ではないことを知っています。あなたのバージョンは確かにもっと愉快に見えますが、私はあなたが使用するものが重要であるとは思わない(読みやすさを除いて、多分)。 –

+0

Yii :: $ appは、Yii2アプリケーションクラスの静的変数、 'yii \ web \ Application'です。 私はこれを試して、それは私のために働いた require_once Yii :: $ app-> basePath。 '/extensions/PearMail/Mail-1.2.0/Mail.php'; –

6

あなたの質問の方法は問題ありませんが、ファイルの場所が常に同じフォルダになるように強制します。

フレキシブルYii::importは、クラスのみをロードするためのもので、名前がfilenameと同じクラスのみです。

あなたがファイルへのパスを取得するには、エイリアスを使用したい場合は、あなたはまだそのように、getPathOfAliasを使用して別名の恩恵を受けることができます。

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

現在のファイルへのファイルの相対が含まれるように、dirname(__FILE__)を使用するのは良いですまたは__DIR__(PHP 5.3+)

require_once __DIR__ . '/some-file.php'; 
関連する問題