0

ZendFramework に関するいくつかの質問:

  1. 新しいプロジェクトを作成するとき、CodeIgniter のようにすべてを 1 つのフォルダーに入れることは可能ですか。アプリケーションとシステム フォルダ、またはそれに類似したものですか?

  2. ZendFramework でプロジェクトを完成させたとき、(コンソールを使用せずに - 共有ホスティングで) サーバーに配置するのはどれくらい難しい/簡単ですか?

  3. 開発時にターミナルなしで ZendFramework を使用できますか? FTP クライアントを使用して新しいクラスを作成していたとしましょう。

前もって感謝します!:)

4

1 に答える 1

1

Zend Framework は、他のフレームワーク (CakePHP、CodeIgniter、Symfony...) と同様に、CLI コマンド (プロジェクト ジェネレーター) を介して新しいプロジェクトをセットアップするか、プロジェクト フォルダーとインクルード パスを手動でセットアップできます。

ベスト プラクティスは、次のような形式の手動アプローチを使用することです。

/project/
/project/vendors/...  - all vendor libraries you may use in your project
/project/lib/... - your common libraries (if you have some)
/project/application/... - application files like controllers, views, temp folders etc...

例:

/project/vendors/Zend/... (zend framework)
/project/vendors/Symfony/... (symfony framework)
/project/lib/MyLib/... (your lib)
/project/application/Bootstrap.php
/project/public_html/index.php

index.php スニペット:

<?php
define('VENDORS_PATH', '/project/vendors');
define('LIB_PATH', '/project/lib');
set_include_path(
    LIB_PATH . PATH_SEPARATOR . 
    VENDORS_PATH . PATH_SEPARATOR . 
    get_include_path()
);

// setup class autoloading
require_once VENDORS_PATH . '/Zend/Loader/Autoloader';
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setDefaultAutoloader(create_function('$class', "include str_replace('_', '/', \$class) . '.php';"));
$autoloader->setFallbackAutoloader(true);

// run application, include Symfony or MyLib files...

プロジェクトを本番サーバーに移行する場合は、最初に環境設定を使用してプロジェクト構成をセットアップする必要があります。

setup.ini の例:

[production]
database.hostname = localhost
database.username = username
database.password = password1
database.dbname = live_db

[staging:production]
database.hostname = localhost
database.username = root
database.password = password2
database.dbname = local_db

apache .htaccess ファイルを使用すると、構成をロードするための環境を簡単にセットアップできます。

ローカル環境の .htaccess ファイル:

SetEnv APPLICATION_ENV staging

本番環境の .htaccess ファイル:

SetEnv APPLICATION_ENV production

環境変数を使用した index.php スニペット:

<?php
...
define('APPLICATION_ENV', getenv('APPLICATION_ENV'));
$config = new Zend_Config_Ini(APPLICATION_LIB . '/setup.ini', APPLICATION_ENV);
...
于 2012-07-31T11:48:17.043 に答える