備考
Zend Framework2(ZF2)は、web開発者がさまざまな複雑さのwebアプリケーションを構築するのに役立つ近代的で柔軟なPHPフレームワーク Zend Framework社の主なスポンサーはZend Technologiesであり、非常に強力で安定しています。 ZF1の上にこの第二のバージョンの2つの主要な改善があります。 まず、モジュールベースのアーキテクチャは、任意の微調整なしでデフォルトで採用されています。 これは、モジュールへの分解を必要とする大きなサイズのwebアプリケーションを開発するときに便利です。 第二に、ZF2はPHP5.3+が特に名前空間を提供できるすべての機能を実装しています。 以前のバージョンでは、コントローラクラスの名前は次のようになりました:
class IndexController extends Zend_Controller_Action{}
この同じクラスは、ZF2で次のように書き直されます:
namespace Application\Controller;use Zend\Mvc\Controller\AbstractActionController;class IndexController extends AbstractActionController{}
以下は、ZF2の他のいくつかのエキサイティングな機能です:
- 依存性注射
- EventManager
- ServiceManager
簡単なこんにちは世界の
おコマンドラインのディレクトリにしたいプロジェクトを作成するために、そのタイプ:composer create-project zendframework/skeleton-application helloWorldTest
. インストール中に、最小限のインストールが必要かどうかを尋ねられます:現時点ではyesと言いましょう、私たちはテストしています。
簡単にするために、組み込みのPHP CLIサーバーを使用します。 コマンドラインから、プロジェクトのルートディレクトリ(helloWorldTest
)に自分自身を取得し、次を実行します。php -S 0.0.0.0:8080 -t public/ public/index.php
。 Webブラウザを開いてhttp://localhost/に移動すると、ZF2Skeletonアプリケーションのwelcomeページが表示されます。
そうすれば、新しいページを設定します。 <6927>きる動的経路が既に設定をサブフォルダ:
return , 'application' => ', 'defaults' => , ], ], ], ],
セットの新しいアクション”helloWorldAction()
“をmodule/Applicaiton/src/Controller/IndexController.php
:
class IndexController extends AbstractActionController{ public function indexAction() { ... } public function helloWorldAction() { return new ViewModel(); }}
最後に作成したものをビューファイルmodule/Application/view/application/index/hello-world.phtml
以下のコンテンツ:
<?phpecho "Hello World !";
現在は、
ファクトリを作成する方法
クラスにハード依存関係を提供する必要がある場合、ベストプラクティスは、それらの依存関係がファクトリを使用して注入されるコンストラクタ注入パターンを使用することです。
MyClass
は、アプリケーション設定から解決する必要がある値$dependency
に依存していると仮定しましょう。
<?phpnamespace Application\Folder;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClass{ protected $dependency; public function __construct($dependency) { $this->dependency = $dependency; }}
この依存関係を注入するためにファクトリクラスが作成されます。 このファクトリは、configからの依存関係を解決し、クラスの構築時にconfig値を注入し、結果を返します:
<?phpnamespace Application\Factory;use Zend\ServiceManager\FactoryInterface;use Zend\ServiceManager\ServiceLocatorInterface;class MyClassFactory implements FactoryInterface{ public function createService(ServiceLocatorInterface $serviceLocator) { $config = $servicelocator->get('Config'); $dependency = $config; $myClass = new MyClass($dependency); return $myClass; }}
ファクトリクラスが作成されたので、キーファクトリの下のモジュール設定ファイルmodule.config.php
のservice manager設定内に登録する必要があります。 クラスとファクトリの両方に同じ名前を使用して、プロジェクトフォルダツリーで簡単に見つけることができるようにすることをお勧めします:
<?phpnamespace Application;return array( //... 'service_manager' => ], //...);
あるいは、クラス名の定数を使用して登録することもできます:
<?phpnamespace Application;use Application\Folder\MyClass;use Application\Factory\MyClassFactory;return array( //... 'service_manager' => ], //...);
これで、そのクラスのファクトリを登録するときに使用したキーを使用して、サービスマネージャでクラスを収集できます:
$serviceManager->get('Application\Folder\MyClass');
または
$serviceManager->get(MyClass::class);
サービスマネージャはファクトリを見つけ、収集して実行し、依存関係が注入されたクラスインスタンスを返します。
インストールまたはセットアップ
Zend Framework2のセットアップまたはインストールに関する詳細な手順。 フレームワークをインストールするには、さまざまな方法があります。 以下はその一部です:
Composerを使用する-推奨される方法
ターゲットボックスにcomposer
がインストールされていると仮定します。
skeleton MVCアプリケーションをインストールするには、ターミナルで実行して、指定した場所に新しいzend framework2プロジェクトを作成します:
php composer.phar create-project -sdev \ --repository-url="https://packages.zendframework.com" \ zendframework/skeleton-application path/to/install
最小限のZF2(Zend MVC+その一握りの依存関係)を手動でインストールするには、コマンドラインで実行します:
composer require zendframework/zend-mvc
または本格的なZF2(+64モジュール)のために):
composer require zendframework/zendframework`
最初のオプションは、通常のアプリケーションディレクトリ構造と一緒に完全に機能するアプリケーションを提供するインストーラを実行することに注 他のオプションでは、ビルドするZF2モジュールを提供するだけなので、アプリケーション全体をゼロからビルドできます。
Gitサブモジュールを使用して
以下のコマンドを実行してZf2を複製し、Githubから再帰的に依存関係を複製します:
git clone git://github.com/zendframework/ZendSkeletonApplication.git --recursive
HTTP Server Setup
典型的なwebアプリケーションは、専用ポートをリッスンするHTTPサービスを実行する必要があります(通常:80)アプリケーションに着信要求を渡します,
注: また、HTTPサーバーを必要とせずにzend Framework2でコンソール対応のアプリケーションを作成することもできます。
オプション1-PHP CLI Server
PHP5.4以上を使用している場合、最も簡単な方法は、ルートディレクトリで内部PHP cli-serverを起動することです。
プロジェクトディレクトリに移動して実行します:
php -S 0.0.0.0:8080 -t public/ public/index.php`.
これにより、ポート8080
で組み込みcli-serverが起動され、すべてのネットワークインターフェイスにバインドされます。オプション2-カスタムHTTPサーバー
ApacheまたはMicrosoft IISサーバーまたはNginxでvirtualhostを設定し、着信HTTP要求をアプリケーションに渡します。