Propelをインストールする

要件

Propelをインストールするために次のものが必要です:

  • サポートされたデータベース(MySQL, MS SQL Server, PostgreSQL, SQLite, Oracle)
  • PHP 5.x. PHPは次のモジュールサポートが必要です:
    • XSLT (libxslt)
    • DOM (libxml2)
    • 望むデータベースのサポート
    • SPL (PHPディストリビューションの中にはSPLを明示的に有効にしなければなりません)
  • Phing 2.x
  • Creole 1.x
  • PEAR Log パッケージ (オプション)

PropelはUnix(Linux, FreeBSD, Mac OS X, Solaris)とWindowsプラットフォームの両方で使用することが出来ます。

PropelはPEAR インストーラでインストールすることが出来るパッケージもしくは"伝統的な"tgzもしくはzipパッケージとして利用可能です。PEARパッケージの利点はインストール作業がとてもシンプルであることです; しかしながら、PEARパッケージの使用によってファイルは必ずしも明確ではないPEARディレクトリに設置されるので、このオプションを使用してPropelビヘイビアをカスタマイズすることはより困難になる可能性があります。伝統的なパッケージの利点はファイルがどこにあるのかが明確であることですが、Propelを動作させるためにより多くの初期のセットアップ作業が要求されます。

PEARパッケージをインストールする

Propelジェネレータとランタイムコンポーネントは(個別の)PEARパッケージとしてインストールすることが可能です。これらのパッケージは共依存していなので、ジェネレータのみもしくはランタイムクラスのみをインストールすることが出来ます。しかし、ランタイムクラスはCreoleパッケージに依存することに注意して下さい。

Propelは新しいPEARチャネル機能を使用する。Propelパッケージをインストールするために、pear.phpdb.orgチャネルをPEAR環境に追加しなければなりません。

$> pear channel-discover pear.phpdb.org

一旦、このチャネルを追加すると、phpdbチャネルエイリアスを使用してPropel(とCreole、Jargon)パッケージをインストール出来ます。

Propelの非安定バージョンをインストールする場合、preferred_statePEAR環境変数も変更します。

$> pear config-set preferred_state beta

(有効な状態は'stable'、'beta'、'alpha'、'devel'を含みます)

ジェネレータ

ジェネレータはオブジェクトモデルをビルドするために必要ですが、Propelを使用するアプリケーションを動かすためには要求されません。開発ワークステーションもしくはサーバ上でジェネレータをインストールしてランタイムコンポーネントを実際のテストもしくは製品サーバ上にインストールしたい場合は次の通りです。

$> pear install phpdb/propel_generator

ランタイム

ランタイムクラスはPropelで生成されたオブジェクトモデルクラスによって使用される共有された機能性を提供しますこれらはデータベースにアクセスするPropelを使用するアプリケーションを動かすために必要です。

$> pear install phpdb/propel_runtime

PEARディレクトリがPHP上のinclude_pathにあることを前提として、それ以上のセットアップは必要ないことを前提とします。

慣習的なパッケージをインストールする

慣習的なインストールの手引きはtgzもしくはzipリリースとSubversion(SVN)の最新バージョンを使用する場合に当てはまります。慣習的なパッケージ化されたリリースもしくはSVNからPropelをインストールすることに関する正確なステップはPropelをインストールしたい位置(すなわちパス)によります。このガイドを簡単にするためにファイルの位置についていくつかの前提をします。これは単なる例で、あなたの位置はおそらく異なります。

パスUnix (Linux, FreeBSD, etc.)Windows
Propel runtime/usr/local/propel/runtimeC:\PHP\apps\propel\runtime
Propel generator/usr/local/propel/generatorC:\PHP\apps\propel\generator

リリースから

Propelのtar.gzもしくはzipを入手したい場合、アーカイブをシンプルに解凍して出力フォルダを正しい位置に移動させます。例です:

$> cd /usr/local

$> tar zxvf propel-x.x.x.tar.gz

$> ln -s propel-x.x.x propel

SVNから

SVN trunkからインストールすることで最も最新のソースコードが保証されます。(もちろんtrunk SVNリポジトリは安定していないと見なされ、本番環境に対して使うことには推奨しません。)

$> svn checkout http://svn.phpdb.org/propel/trunk /usr/local/propel

Propelの特定のリリースバージョンをチェックアウトすることも出来ます。例です:

$> svn checkout http://svn.phpdb.org/propel/tags/1.1.1 /usr/local/propel

もしくはPropelの特定のbranchにおける最新のバージョンです:

$> svn checkout http://svn.phpdb.org/propel/branches/1.1 /usr/local/propel

Propel SVNリポジトリについて詳細な情報はwiki:Development/SVNページをご覧下さい。

セットアップ環境

一旦Propelディストリビューションを解凍すると、PHP環境を設定する必要があります。

propel-gen スクリプト

Propel 1.2に関しては、PEARと慣習的なPropelジェネレータパッケージ(とSVN)に含まれるpropel-genスクリプトがあります。(かつてpropel-genスクリプトはPEARでインストールしたPropelでしか利用できませんでした)propel-genスクリプトはUnixとWindowsシステムで利用可能で(Windowsはpropel-gen.bat)Phingへの参照を隠すことでPropelジェネレータのコマンドラインの起動をシンプル化します。望むのであれば、Propelクラスをビルドするためにphingを直接呼び出すことが出来ます

慣習的なパッケージもしくはSVNを使用してPropelをインストールする場合、PropelディレクトリをあなたのPATHに追加して、propel-genスクリプトをパス上の位置にコピーするもしくは(Unixシステム上)シンボリックリンクを作成することが出来ます。例です:

$> cd /usr/local/bin
$> ln -s /usr/local/propel/bin/propel-gen propel-gen

PHP include_path

propel/runtime/classesディレクトリをPHPinclude_pathに追加します。

ランタイムクラスをinclude_pathに追加するだけであることに留意して下さい。ビルドプロセスがジェネレータクラスのためにinclude_pathを自動的に計算するからです。言い換えると、このステップはオブジェクトモデルをビルドすることが要求されませんが、PHPスクリプトから実際に生成されたコードを使用することが要求されます。include_pathを設定するもっとも簡単で恒常的な方法はphp.iniを編集してこのディレクトリをinclude_pathディレクティブに追加することです:

; Unix
include_path="/usr/local/lib/php:/usr/local/propel/classes"

もしくはWindowsを使っている場合です。

; Windows
include_path="C:\PHP\PEAR;C:\PHP\apps\propel\classes"

php.iniファイルへのアクセス権がなく、.htaccessファイルでinclude_pathディレクティブを指定することが出来ない場合、常にPHPスクリプトの範囲内で実行時に次のことを行うことが出来ます:

<?php 

set_include_path("/usr/local/propel/runtime/classes:" . get_include_path());

require_once 'propel/Propel.php';
Propel::init( MY_CONF_DIR . '/propel/runtime-conf.php');

これでPropelランタイム環境はオブジェクトモデルで利用する準備が出来ました。後で学ぶように、オブジェクトモデルのPHPクラス(すなわちPropelジェネレータがビルドするクラス)に対するinclude_pathを修正する必要があります。

他のINI変数

Propelは次のPHP INI設定も要求します:

変数
ze1_compatibility_modeOff
magic_quotes_gpcOff
magic_quotes_sybaseOff

この時点で、Propelはセットアップされ使う準備ができました。試すためにクイックスタートガイドにある次のステップに移ることが出来ます。