次のような通常のタイプのクラス構造が必要です。
com.acme.module.Class.php
では、このようなパッケージをインポートするにはどうすればよいですか?
他の言語では、私は次のようなことをすることができます
import "com.acme.module.Class"
また
import "com.acme.module.*"
これはPHPで可能ですか?
次のような通常のタイプのクラス構造が必要です。
com.acme.module.Class.php
では、このようなパッケージをインポートするにはどうすればよいですか?
他の言語では、私は次のようなことをすることができます
import "com.acme.module.Class"
また
import "com.acme.module.*"
これはPHPで可能ですか?
PHP 5.3以降では、名前空間があります。
PSR-0標準によると、パッケージ名はディレクトリ名の形式になっています。つまり、クラスMauris\Acme\Controllers\Home
(パッケージ名はMauris\Acme\Controllers
、クラス名はHome
)がある場合、クラスファイルに名前が付けられHome.php
、フォルダーに配置されますsrc/Mauris/Acme/Controllers
。
次に、オートローダー(簡略化されたPSR-0準拠のオートローダーがあります)を使用して、クラスをスクリプトに直接「インポート」できます。
<?php
namespace Mauris\Acme\Actions;
require('autoloader.php');
$classLoader = new SplClassLoader();
$classLoader->register(); // register the autoloading callback
// the "import"
// the require() or include() statement is in the auto
use Mauris\Acme\Controllers\Home as HomeController;
$controller = new HomeController();
// if you don't use the "use" statement, you can also write:
// $controller = new \Mauris\Acme\Controllers\Home();
詳細については、http://php.net/manual/en/language.namespaces.importing.phpをご覧ください。