2016-10-14 3 views
0

私はPHPフレームワーク(一般的ではない)を使用していますが、問題が発生しています。サブフォルダを追加するたびに、私のフレームワークが見つかりません。たとえば、私のフォルダ構造は次のようになります。サブフォルダの問題でのrequire_once

+ =ファイル

-account

-classes

-core

+インデックス

+

を登録し、私は私のコアフォルダ内のinitファイルを持っていますそれは完璧にうまくいくwルート内のi個のファイルが、私がアカウントフォルダ(ファイルはログイン時のファイル)に入っていると、エラーが発生します。

私はクラスを呼び出すために私のinitファイルに次のものを持っています。

Warning: require_once(/core/init.php): failed to open stream: No such file or directory 

その後:私は、私はこのエラーを取得するこの

require_once '/core/init.php'; 

をやって試してみました

require_once 'core/init.php'; 

spl_autoload_register(function($class) { 
     require_once 'classes/' . $class . '.php'; 
    }); 

    require_once 'functions/sanitize.php'; 

だから、通常、私は、initファイルを呼び出すために、これを行います私がこれをするとき

require_once 'http://sitename.com/core/init.php'; 

initファイルは機能しますが、すべてのクラスへのパスは機能しません。

私は、私のinitファイルと特異的にこれらの行何かをする必要があります:それは、ルートファイルやサブフォルダのファイルのために働くことを可能にするに

spl_autoload_register(function($class) { 
     require_once 'classes/' . $class . '.php'; 
    }); 

    require_once 'functions/sanitize.php'; 

を?

enter image description here

+0

'/ core'は絶対パスです。あなたが '../core'のような相対的なものを望むように見えます。 – mbethke

+0

[PHP - ストリームを開くことに失敗しました:このようなファイルやディレクトリはありません](http://stackoverflow.com/questions/36577020/php-failed-to-open-stream-no-such-file-or-directory) ) –

答えて

0

私が正しく理解場合は、classesディレクトリ内のファイルをwithingからコア/ init.phpファイルを要求しようとしていますか?そう、現在のディレクトリを参照します

require_once __DIR__ . '/../core/init.php'; 

マジック定数__DIR__を使用して試してみて../コアディレクトリが配置されて、その親ディレクトリを参照する場合は。

+0

私はそれをサブフォルダ内で要求しようとしています。クラスとコアフォルダは、ルートのフォルダです....アカウントフォルダ(これを実行しようとしているファイル)と同じように。 – Becky

+0

したがって、root/accounts/file.phpというフォルダにある場合、上記のコードをfile.php内で使用すると、root/core/init.phpを指します。働いていないのですか?また、sp_autoload関数で説明したinitファイルはコアディレクトリの内側にありますか?もしそうなら、その関数の相対パスを 'require_once '../classes/'のようにするべきでしょう。 $クラス。 '.php'; ' –

+0

initクラス内で推奨した変更を行い、このエラーを受け取りました.. '致命的なエラー:'セッション 'が'クラス 'に見つかりません。だから、それはそれが見えるクラスのフォルダにそれを作っていません。 – Becky

関連する問題