Propelのインストール

必要条件

Propelをインストールをするには以下には以下のものが必要です:

  • サポートされたデータベース (MySQL, MS SQL Server, PostgreSQL, SQLite, Oracle)
  • PHP 5.2.x. PHP に以下のモジュールが入っている必要があります:
    • XSLT (libxslt)
    • DOM (libxml2)
    • PDO (使用するデータベースへのサポートが必要です)
    • SPL (PHPのディストリビューション内でSPL が明示的に有効になっている必要があります)
  • Phing 2.2.x
  • PEAR Log パッケージ (必要であれば)

Propel はunix (Linux, FreeBSD, Mac OS X, Solaris) とWindows プラットフォーム両方で動作可能です。

Propel はPEARインストーラあるいはtgzやzipパッケージからインストールできます。PEARパッケージを使うととても簡単にインストールを行えますが、PEARパッケージは分かりにくいPEARディレクトリにファイルを置いてしまうことがあり、後でカスタマイズを行う際が少し難しくなる可能性があります。tgzやzipパッケージを使うことでファイルの場所が明らかになりますが、Propelを走らせるための最初の設定が必要になります。

PEAR パッケージを使ってのインストール

Propel generatorとruntime の両方のコンポーネントは別々のPEARパッケージとして提供されています。これらのパッケージは依存関係にはなく、generatorとruntimeを単独にインストールすることは可能です。runtimeはクラスはCreoleパッケージに依存しているのには注意してください。

PropelはPEARの新しいチャネル機能を使います。Propelをインストールするためにはpear.phpdb.orgをPEARの環境変数に追加することが必要になります。

$> pear channel-discover pear.phpdb.org

このチャネルを追加した後に、Propel(CreoleとJargonも)をphpdbチャネルエイリアスからインストールすることができるようになります。

開発版のPropelをインストールするにはPEARの環境変数のpreferred_stateを変更する必要があります。

$> pear config-set preferred_state beta

(有効な状態 - Valid states include 'stable', 'beta', 'alpha', 'devel' のどれか)

Generator

Generator はオブジェクトモデルを構築するのに必要ですが、Propelを使って動くアプリケーションには必要ではありません。Generatorを開発環境にインストールして、Runtimeコンポーネントは実際のテストサーバーやプロダクションサーバーにインストールするようにできます。

$> pear install phpdb/propel_generator

Runtime

Runtime クラスはPropelが生成するオブジェクトモデルが使う機能を提供します。これらはPropelを使うアプリケーションがデータベースにアクセスする際に必要となります。

$> pear install phpdb/propel_runtime

PEAR ディレクトリがPHPのinclude_pathに入っている場合はこれ以上セットアップする必要はありません。

圧縮リリースパッケージからのインストール

tgzやzipリリース(圧縮リリースパッケージ)のからのインストールやSubversionから所得したファイルをインストールする場合はこちら。圧縮パッケージやSubversionからのインストールを行う場合の順番はどこにPropelをインストールするかによって変わってきます。このガイドをシンプルなものにするため、ファイルの場所はこちらで想定したものを使っています。あくまでこれらのファイルの場所は例ですので、あなたのシステムでは違うものになります

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

圧縮リリースパッケージから

tar.gz や .zip など圧縮パッケージのPropelからインストールする場合は単純にファイルを解凍して、適切な場所に移動させてください。例えば:

$> cd /usr/local

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

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

Subversionから

Subversion trunkからインストールする場合は最新のファイルであることを確認してください。(もちろんSubversion repositoryは安定しているものではないので、公開環境では使わないことをお勧めします。)

注意

branches/1.3 は現在trunkのものより更に新しいファイルが入っています。trunkにはバージョン2.0に含まれるファイルが入っていますが、バージョン1.3への準備のためしばらくほとんど更新されていません。

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

Subversionを使って特定のバージョンのPropelをチェックアウトすることも可能です。例えば:

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

あるいは特定のブランチの中で最新のバージョンを手に入れるには:

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

Propel Subversion repository に関しては wiki:Development/SVN ページに更に詳しい情報があります。

環境のセットアップ

Propelディストリビューションを解凍した後にPHPの環境を設定する必要があります。

propel-gen スクリプト

Propelが提供するpropel-gen スクリプトはPEARと圧縮(Subversion)パッケージのgeneratorパッケージのどちらにも含まれています。(以前はprope-gen スクリプトはPEARインストールのPropelでしか使えませんでした。)propel-gen スクリプトはUnixとWindowsシステムどちらでも使え、Phingを書くことを隠し、コマンドラインからのPropel generatorの起動をシンプルなものにします。phingを直接呼んでPropelクラスを生成することもまだ可能です。

圧縮パッケージやSubversion使ってPropelをインストールした場合は、Propel {{bin/}}}ディレクトリをPATH環境変数に追加するか、propel-genスクリプトをPATH内にコピーする必要があります。Unixシステムの場合はsymlinkを張ることも可能です。例えば:

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

PHP include_path

propel/runtime/classesをPHPのinclude_path に追加する必要があります。

ビルドプロセスがgeneratorクラスに対してinclude_pathを自動的に計算するので、runtimeクラスだけを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 runtimeの環境がオブジェクトモデルから使えるようになりました。この後にもありますが、(Propel generatorが生成する)オブジェクトモデルのPHPクラスに関してもinclude_pathを編集して使えるようにすることが必要になります。

その他INI変数

以下のPHP INIの設定がなされていることが必要です:

変数
ze1_compatibility_modeOff
magic_quotes_gpcOff
magic_quotes_sybaseOff

ここまで来たらPropelが設定され、使えるようになったはずです。クイックスタートガイドにあるように実際にPropelを動かしてみてください。