<?phpnamespace Framework\core;
class Framework{ //コンストラクターで初期化します。 method public function __construct() { $this->autoload(); $this->initMCA(); $this->dispatch(); } //自動ロード用に登録しますpublic function autoload() { //注: 関数のパラメータがコールバック関数の場合は、関数の名前を直接記述しますオブジェクトメソッド spl_autoload_register(array($this,"autoloader")); //自動ロードと実行関数 public function autoloader($className) { echo 'We need:'.$className.'<br>'; / /サードパーティのクラスに特別なケースを作成する if($className=='Smarty'){ require_once './framework/vendor/smarty/Smarty.class.php'; return; 名前空間クラス、分離 $arr =explode('\\', $className); //2. 最初のディレクトリに基づいてロードするルート ディレクトリを決定します。要素 if($arr[0] == 'フレームワーク'){ $basic_path='./'; ; if(substr($arr[count($arr)-1], 0,2)=='I_') { $fix = ' .class.php'; }$class_file = $basic_path.$sub_path.$fix; //5. クラスのロード //名前空間の規則に従って定義されていない場合、それはロードする必要のあるクラスではないことを意味するため、ロードする必要があります if(file_exists($class_file)) { require_once $class_file; $m = isset($_GET['m'])?$_GET['m']:'home'; define('MODULE', $m); //どのコントローラにアクセスするか $c = isset($_GET[ 'c'])?$_GET['c']:'Index'; define('CONTROLLER', $c); //コントローラーのどの操作にアクセスするか? $a = isset($_GET['a'] )? $_GET['a']:'indexAction'; define('ACTION', $a); } //オブジェクトをインスタンス化し、メソッドを呼び出す public functiondispatch() { $controller_name = MODULE.'\controller\\ '.CONTROLLER .'Controller '; // 最初にコントローラクラスをロードし、次にオブジェクトをインスタンス化します $controller = new $controller_name; // コントローラを呼び出すメソッド $ a = action; #
smarty を再ダウンロードし、プロジェクトの Smart に sysplugins フォルダーがあるかどうかを確認し、plugins フォルダーがない場合は、試験を受けてください。