プロジェクトを作成
プロジェクトを作成するには、まず、Zend Frameworkをダウンロードして、解凍しなければいけません。
Zend Framework をインストール
全部揃った PHP スタックと一緒に Zend Framework
を手に入れる最も簡単な方法は、» Zend Server
をインストールすることです。Zend Server には、
多くの Linux ディストリビューションと互換性のある一般的なインストール・パッケージだけでなく、
Mac OSX、Windows、Fedora Core および Ubuntu 用のネイティブのインストーラーがあります。
Zend Server をインストールし終わると、Mac OSX および Linux の場合は
/usr/local/zend/share/ZendFramework 配下に、
Windows の場合は
C:\Program Files\Zend\ZendServer\share\ZendFramework
配下にフレームワークのファイルが見つかるでしょう。
include_pathは、Zend Frameworkを含むように構成済みです。
あるいは、» Zend Framework の最新版
をダウンロードして内容を解凍することができます。
make a note of where you have done so.
php.ini の include_path 設定に
アーカイブのlibrary/サブディレクトリへのパスを任意に追加できます。
これで終わりです。これで Zend Framework がインストールされ、使えるようになりました。
プロジェクトを作成
Note: zf コマンドラインツール
Zend Framework インストール先には bin/ サブディレクトリがあり、
UNIX ベースおよび Windows ベースのユーザーのために、それぞれスクリプト
zf.sh および zf.bat を含みます。
このスクリプトに絶対パスを書きとめてください。
zf コマンドとの関係がわかっている場所ではどこでも
スクリプトへの絶対パスに置き換えてください。Unix のようなシステムでは、シェルのエイリアス機能を使いたいかもしれません。
alias zf.sh=path/to/ZendFramework/bin/zf.sh
zf コマンドラインツール設定中に問題があった場合は、
マニュアル を参照してください。
ターミナルを開きます。(Windows ではスタート -> ファイル名を指定して実行
、それから cmd を使用します)
プロジェクトを開始したいディレクトリに進みます。それから、適切なスクリプトへのパスを使用して、下記のいずれかを実行します。
% zf create project quickstart
このコマンドを実行すると、基本的なサイト構造が作成されます。そこには基になるコントローラやビューが含まれます。
ツリーは下記のように見えます。
quickstart
|-- application
| |-- Bootstrap.php
| |-- configs
| | `-- application.ini
| |-- controllers
| | |-- ErrorController.php
| | `-- IndexController.php
| |-- models
| `-- views
| |-- helpers
| `-- scripts
| |-- error
| | `-- error.phtml
| `-- index
| `-- index.phtml
|-- library
|-- public
| |-- .htaccess
| `-- index.php
`-- tests
|-- application
| `-- bootstrap.php
|-- library
| `-- bootstrap.php
`-- phpunit.xml
もしこの時点で Zend Framework を include_path
に追加していないなら、library/ ディレクトリにコピーするか、または symlink することを勧めます。
いずれにせよ、Zend Framework インストール先の library/Zend/
ディレクトリをプロジェクトの library/ ディレクトリに再帰的にコピーするか、
または symlink することが必要になるでしょう。Unix のようなシステムでは、それは下記のいずれかのように見えます。
# Symlink:
% cd library; ln -s path/to/ZendFramework/library/Zend .
# Copy:
% cd library; cp -r path/to/ZendFramework/library/Zend .
Windows システムでは、これをエクスプローラから行なうのが最も簡単かもしれません。
Now that the project is created, the main artifacts to begin understanding are the
bootstrap, configuration, action controllers, and views.
The Bootstrap
Your Bootstrap class defines what resources and components to
initialize. By default, Zend Framework's Front
Controller is initialized, and it uses the
application/controllers/ as the default directory in which to look
for action controllers (more on that later). そのクラスは下記のように見えます。
// application/Bootstrap.php
As you can see, not much is necessary to begin with.
Configuration
While Zend Framework is itself configurationless, you often need to configure your
application. The default configuration is placed in
application/configs/application.ini, and contains some basic
directives for setting your PHP environment (for instance, turning
error reporting on and off), indicating the path to your bootstrap class (as well as its
class name), and the path to your action controllers. それは下記のようになります。
; application/configs/application.ini
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
Several things about this file should be noted. First, when using
INI-style configuration, you can reference constants directly and
expand them; APPLICATION_PATH is actually a constant. Additionally
note that there are several sections defined: production, staging, testing, and
development. The latter three inherit settings from the "production" environment. This
is a useful way to organize configuration to ensure that appropriate settings are
available in each stage of application development.
Action Controllers
Your application's action controllers contain your application
workflow, and do the work of mapping your requests to the appropriate models and views.
An action controller should have one or more methods ending in "Action"; these methods
may then be requested via the web. By default, Zend Framework URLs follow the schema
/controller/action, where "controller" maps to the action
controller name (minus the "Controller" suffix) and "action" maps to an action method
(minus the "Action" suffix).
Typically, you always need an IndexController, which is a
fallback controller and which also serves the home page of the site, and an
ErrorController, which is used to indicate things such as
HTTP 404 errors (controller or action not found) and
HTTP 500 errors (application errors).
デフォルトの IndexController は下記の通りです。
// application/controllers/IndexController.php
/* Initialize action controller here */// action body
}
}
そして、デフォルトの ErrorController は下記の通りです。
// application/controllers/ErrorController.php
'error_handler'// 404 error -- controller or action not found
$this->getResponse()->setHttpResponseCode(404);
$this->view->message = 'Page not found'// application error
$this->getResponse()->setHttpResponseCode(500);
$this->view->message = 'Application error'
You'll note that (1) the IndexController contains no real code,
and (2) the ErrorController makes reference to a "view" property.
That leads nicely into our next subject.
Views
Views in Zend Framework are written in plain old PHP. View scripts
are placed in application/views/scripts/, where they are further
categorized using the controller names. In our case, we have an
IndexController and an ErrorController,
and thus we have corresponding index/ and
error/ subdirectories within our view scripts directory. Within
these subdirectories, you will then find and create view scripts that correspond to each
controller action exposed; in the default case, we thus have the view scripts
index/index.phtml and error/error.phtml.
View scripts may contain any markup you want, and use the <?php
opening tag and ?> closing tag to insert PHP
directives.
The following is what we install by default for the
index/index.phtml view script:
span style="color: #808080; font-style: italic;">#0398CA;
}
span#zf-name
{
color: #91BE3F;
}
div#welcome
{
color: #FFFFFF;
//framework.zend.com/images/bkg_header.jpg);
#444444;
overflow: hidden;
text-align: center;
}
div#more-information
//framework.zend.com/images/bkg_body-bottom.gif);
height: 100%;
}
</style>
<div id="welcome">
<h1>Welcome to the <span id="zf-name"'s main page<h3 />
<div id="more-information">
<p>
<img src="http://framework.zend.com/images/PoweredBy_ZF_4LightBG.png" />
</p>
<p>
Helpful Links: <br />
<a href="http://framework.zend.com/">Zend Framework Website</a> |
<a href="http://framework.zend.com/manual/en/">Zend Framework
Manual</a>
</p>
</div>
</div>
The error/error.phtml view script is slightly more interesting as
it uses some PHP conditionals:
span style="color: #ff0000;">"-//W3C//DTD XHTML 1.0 Strict//EN";
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"'development'
バーチャル・ホストを作成
このクイックスタートの必要上、» Apache Web サーバー
を使用すると仮定しています。Zend Framework は、他の Web サーバーでも申し分なく動作します。
それには、Microsoft Internet Information Server、lighttpd、nginx などを含みます。
しかし、大抵の開発者は少なくとも Apache をよく知っていなければなりません。
そして、それはZend Framework のディレクトリ構造とリライト能力への簡単な導入を提示します。
vhost を作成するには、httpd.conf ファイルの位置を知る必要があります。
その場所には他の構成ファイルが格納されている可能性があります。いくつかの一般的な場所はこうです。
-
/etc/httpd/httpd.conf (Fedora や RHEL など)
-
/etc/apache2/httpd.conf (Debian や Ubuntu など)
-
/usr/local/zend/etc/httpd.conf (Linux 版 Zend Server)
-
C:\Program Files\Zend\Apache2\conf (Windows 版 Zend Server)
httpd.conf (一部のシステムでは httpd-vhosts.conf)
内で行なうべきことが2つあります。
1つ目は、NameVirtualHost が定義されていることを確実にすることです。
一般的にはそれを "*:80" という値に設定します。
2つ目は、バーチャル・ホストを定義することです。
span style="color: #7f007f;">"development"
There are several things to note. First, note that the DocumentRoot
setting specifies the public subdirectory of our project; this
means that only files under that directory can ever be served directly by the server.
Second, note the AllowOverride, Order, and
Allow directives; these are to allow us to use
htacess files within our project. During development, this is a
good practice, as it prevents the need to constantly restart the web server as you make
changes to your site directives; however, in production, you should likely push the
content of your htaccess file into your server configuration and
disable this. Third, note the SetEnv directive. What we are doing
here is setting an environment variable for your virtual host; this variable will be
picked up in the index.php and used to set the
APPLICATION_ENV constant for our Zend Framework application. In
production, you can omit this directive (in which case it will default to the value
"production") or set it explicitly to "production".
Finally, you will need to add an entry in your hosts file
corresponding to the value you place in your ServerName directive. On
*nix-like systems, this is usually /etc/hosts; on Windows, you'll
typically find it in C:\WINDOWS\system32\drivers\etc. Regardless of
the system, the entry will look like the following:
127.0.0.1 quickstart.local
Start your webserver (or restart it), and you should be ready to go.
Checkpoint
At this point, you should be able to fire up your initial Zend Framework application.
Point your browser to the server name you configured in the previous section; you should
be able to see a welcome page at this point.
|
|