index.phpは以下の通りです。
定数設定ファイルのconfig.phpとオートローダのautoload.phpを呼び出しています。
後はリクエストに応じて、Dispatcherクラスが振り分けてくれます。
<?php use \saso\classes\base; require_once 'config.php'; require_once 'autoload.php'; $dispatcher = new base\Dispatcher(); $dispatcher->setSystemRoot(DOCUMENT_ROOT . PROGRAM_DIR); $dispatcher->dispatch();
次にオートローダである、autoload.phpです。
クラスを使うときは名前空間とディレクトリ構造が一致している必要があります。
もちろん、一つのクラスにつき一つのファイルです。
<?php
function __autoload($classname) {
$classname = ltrim($classname, '\\');
$filename = '';
$namespace = '';
if ($lastnspos = strripos($classname, '\\')) {
$namespace = substr($classname, 0, $lastnspos);
$classname = substr($classname, $lastnspos + 1);
$firstnspos = stripos($namespace, '\\');
$namespace = substr($namespace, $firstnspos + 1);
$filename = DOCUMENT_ROOT . PROGRAM_DIR . '/' . str_replace('\\', '/', $namespace) . '/';
}
$filename .= $classname . '.php';
if(!file_exists($filename)){
throw new \Exception('notFound');
}
require $filename;
}
ちなみに、config.phpは以下の通りです。
<?php
const
//パス
DOCUMENT_ROOT = '/***/***/public_html/'
,PROGRAM_DIR = 'saso1_0'
//データベース
,DSN = 'mysql:dbname=saso;host=localhost'
,USER = 'saso_user'
,PASSWORD= '**********'
;
0 件のコメント:
コメントを投稿