Piece Frameworkによるブログアプリケーションの作成

第3回Piece Frameworkのインストールと動作確認

前回の記事では、Piece Frameworkの全プロダクトを示し、それらの特徴を紹介しました。今回からは連載の本題であるブログアプリケーションの作成を進めていきます。

今回はブログアプリケーション作成の準備としてPiece Frameworkのインストールとプロジェクトディレクトリの作成、サンプルアプリケーションの動作確認を行います。

事前準備

ブログアプリケーションは、下記の環境による開発を想定しています。

これらのソフトウェアのインストールと設定については割愛させて頂きます。以後、これらのインストールと設定が完了していることを前提に進めさせて頂きますので、あらかじめご了承ください。

Piece Frameworkのインストール

Piece FrameworkのすべてのPHPプロダクトはPEARインストーラ経由でインストールすることができるPEARパッケージとして提供されています。PEARインストーラによってそれぞれのパッケージに必要な外部のパッケージも自動的にインストールされます。

さて、現在のところPiece Frameworkにはプロジェクト生成ツールがありませんので、新規アプリケーションのディレクトリ構成やファイルを1から準備するのは少々面倒です。しかし幸いなことに、Piece_Unityのサンプルアプリケーションを提供するパッケージPiece_Examples_BasicsやPiece_Examples_Questionnaireをインストールすることで、新規アプリケーションに必要なものの多くを準備することができます。今回は、Piece_Examples_Basicsをインストールすることにします。インストールにはpearコマンドを使います。コマンドプロンプトやシェルから下記のコマンドを実行してください。

Piece_Examples_Basicsのインストール
> pear.bat channel-discover pear.piece-framework.com
> pear.bat install -f piece/piece_examples_basics
...
> pear.bat list -a
INSTALLED PACKAGES, CHANNEL __URI:
==================================
(no packages installed)
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE             VERSION STATE
Archive_Tar         1.3.2   stable
Cache_Lite          1.7.2   stable
Console_Getopt      1.2.3   stable
HTML_Template_Flexy 1.2.5   stable
Net_URL             1.0.15  stable
PEAR                1.6.1   stable
Structures_Graph    1.0.2   stable
INSTALLED PACKAGES, CHANNEL PEAR.PIECE-FRAMEWORK.COM:
=====================================================
PACKAGE                                          VERSION STATE
Piece_Examples_Basics                            1.0.0   stable
Piece_Flow                                       1.10.0  stable
Piece_Right                                      1.6.0   stable
Piece_Unity                                      1.0.0   stable
Piece_Unity_Component_Authentication             0.13.0  beta
Piece_Unity_Component_Flexy                      1.0.0   stable
Piece_Unity_Component_NullByteAttackPreventation 1.0.0   stable
Stagehand_FSM                                    1.8.0   stable
INSTALLED PACKAGES, CHANNEL PECL.PHP.NET:
=========================================
(no packages installed)

Piece_Examples_Basicsをインストールすることによって、多くのパッケージが自動的にインストールされたことがわかります。しかし、 PEARインストーラによって必要なパッケージすべてがインストールされるわけではありません。PEARインストーラは既知のPEARチャネルで提供されるPEARパッケージしか自動的にインストールしません。Spyc[1]はPiece Frameworkに必要なパッケージのうち自動的にインストールすることができない唯一のパッケージです。

では、Spycを手動でインストールしましょう。http://spyc.sourceforge.net/からアーカイブをダウンロードし、アーカイブ中のspyc.php5をinclude_pathに設定されたディレクトリに配置してください。

これでひとまずインストールは完了です[2]⁠。

プロジェクトディレクトリの作成

次に実際にブログアプリケーションが構築されるディレクトリを準備します。以後、このディレクトリをプロジェクトディレクトリと呼ぶことにします。プロジェクトディレクトリは記事中では/path/to/pieceblogと表記します。

プロジェクトディレクトリが作成できたら、そこにPiece_Examples_Basicsのアプリケーションが配置されているdata_dir/Piece_Examples_Basics/webをディレクトリごとコピーします。

なお、data_dirはPEAR data directoryです。下記のコマンドを実行すると、お使いの環境のPEAR data directoryを確認することができます。

pearコマンドによるPEAR data directoryの確認
> pear.bat config-show
CONFIGURATION (CHANNEL PEAR.PHP.NET):
=====================================
...
PEAR data directory            data_dir         /path/to/pear/data
...

コピー後のプロジェクトディレクトリは下記のような構成になります。

プロジェクトディレクトリの構成
[プロジェクトディレクトリ (/path/to/pieceblog)]
  |
  +- [web]
       |
       +- [htdocs]
       |
       +- [webapp]
            |
            +- [actions]
            |
            +- [cache]
            |    |
            |    +- [flows]
            |    |
            |    +- [validations]
            |
            +- [compiled-templates]
            |
            +- [config]
            |    |
            |    +- [flows]
            |    |
            |    +- [validations]
            |
            +- [sessions]
            |
            +- [templates]
                 |
                 +- [Authentication]
                 |
                 +- [Layout]
                 |
                 +- [ProtectedResource]
                 |
                 +- [Registration]
                 |
                 +- [Static]

サンプルアプリケーションの動作確認

プロジェクトディレクトリの作成が終わったら、最後にサンプルアプリケーションの動作確認を行います。/path/to/pieceblog/web/htdocsをドキュメントルートとしたバーチャルホストpieceblogをApacheの設定ファイルhttpd.confに記述します。

httpd.confの設定例
<VirtualHost 127.0.0.1:80>
    ServerName pieceblog
    DocumentRoot "/path/to/pieceblog/web/htdocs"
    CustomLog logs/access.log.pieceblog-80 combined
    ErrorLog logs/error.log.pieceblog-80
    php_value mbstring.language Japanese
    php_value mbstring.internal_encoding UTF-8
    php_value mbstring.http_input auto
    php_value mbstring.http_output pass
    php_flag mbstring.encoding_translation On
    php_value mbstring.substitute_character none
    php_value mbstring.func_overload 0
    <Directory "/path/to/pieceblog/web/htdocs">
        Options FollowSymLinks
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Directory>
</VirtualHost>

さらに、ホストpieceblogをIPアドレス127.0.0.1としてhostsにて設定しておきます。なおhostsはUNIX系OSの場合 /etc, Windowsの場合 WINDOWSディレクトリ\system32\drivers\etc に配置されています。

hostsの設定例
127.0.0.1       localhost
127.0.0.1       pieceblog

次に下記のディレクトリに対してWebサーバのプロセスが読み書きできるパーミッションを設定します。

  • /path/to/pieceblog/web/webapp/sessions
  • /path/to/pieceblog/web/webapp/cache
  • /path/to/pieceblog/web/webapp/cache/flows
  • /path/to/pieceblog/web/webapp/cache/validations
  • /path/to/pieceblog/web/webapp/compiled-templates

ではブラウザを起動して、http://pieceblog/ にアクセスしてみましょう。設定に問題がなければ下記のようにサンプルアプリケーションのインデックスページが表示されます。

サンプルアプリケーションのインデックスページ
サンプルアプリケーションのインデックスページ

以上で動作確認は完了です。

おわりに

サンプルアプリケーションのインデックスページに含まれる各リンクをクリックすることで、それぞれ異なるアプリケーションを動作させることができます。それらのアプリケーションを動作させることでPiece_Unityの特徴を体験して頂けるようになっていますので是非お試しください。

次回は、ブログアプリケーションの画面遷移を設計します。

おすすめ記事

記事・ニュース一覧