2016-04-07 3 views
0

私はPHPネームスペースとオートロードを使用しています。各ページの上部にある結果として、私はこれらの行を記述します。私は、ウェブサイトのルートにいるときPHPネームスペースはサブディレクトリでは機能しません

require_once('autoload.php'); // this file is in the root directory 
use Lib\Blogs; 
use Lib\Clients; 

すべてのものは、前述の行を結構です。

require_once('../autoload.php'); // this file is in the root directory 
use Lib\Blogs; 
use Lib\Clients; 

と、これは誤りです:

は、私がこれまでのラインの上に変更します。

Fatal error: Class 'Lib\Blogs' not found in C:\website\ajax\ajaxBlog.php on line 10 

と私はサブディレクトリにいるときしかし、私はそれらのいずれかにアクセスすることはできません10行目で静的メソッドを呼び出すコードを持っています:

if (!empty(Blogs::findByEmail($email))) { ... } 

答えて

0

したがって、別名付きのクラスを使用するかfuあなたが電話をしたときのパス。

use Lib\Blogs as Blogs; 
... 
if (!empty(Blogs::findByEmail($email))) { ... } 

または

if (!empty(Lib\Blogs::findByEmail($email))) { ... } 
+0

それでも同じ致命的なエラー – MoHo

+0

は、私はまだautoload.phpファイルが必要ですか? – MoHo

+0

もちろん、すべてのページにオートコーダーが必要です。それ以外の場合は、すべてのクラスファイルを手動でインクルードする必要があります。あなたの場合、オートローダーファイルに絶対パスを含める必要があります。しかし、プロジェクトでMVCパターンを使用する方が良いでしょう。この場合、index.phpにオートローダーを1回だけ含める必要があります –

関連する問題