2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Phalconのプロジェクト作成

Posted at

ディレクトリ(ひな形)の準備

Phalconをインストールするとあとは何がしかのコマンドを打てば
プロジェクトのひな形が自動生成されるのかと思ったらそうではないらしい。
一先ずディレクトリ構成は以下のようにしてみた
app/controllers
app/models
app/views
public/css
public/image
public/js
すごくシンプルだが、まだどんな機能があるかわからないし、
必要になったら足せば良いかなと。
だいたい、そんなにいろいろ機能を付けるならPhalconよりも
symphonyやlaravelを使えば良い。

Apacheの準備

ドキュメントルートを上記のpublicに向けておく。
publicは公開用のディレクトリ。
さらにpublicの直下に.htaccessを作成して以下のようにしておく。
これでリクエストを全てindex.phpで受ける事ができる。

.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>

#bootstrapの準備
これはチュートリアルのページから拝借してきた。
public直下にindex.phpを作って以下のように書く

index.php
<?php

use Phalcon\Loader;
use Phalcon\Mvc\View;
use Phalcon\Mvc\Application;
use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Url as UrlProvider;
use Phalcon\Db\Adapter\Pdo\Mysql as DbAdapter;

try {

    // オートローダにディレクトリを登録する
    $loader = new Loader();
    $loader->registerDirs(array(
        '../app/controllers/',
        '../app/models/'
    ))->register();

    // DIコンテナを作る
    $di = new FactoryDefault();

    // ビューのコンポーネントの組み立て
    $di->set('view', function () {
        $view = new View();
        $view->setViewsDir('../app/views/');
        return $view;
    });

    // ベースURIを設定して、生成される全てのURIが「phalcon」を含むようにする
    $di->set('url', function () {
        $url = new UrlProvider();
        $url->setBaseUri('/phalcon/');
        return $url;
    });

    // リクエストを処理する
    $application = new Application($di);

    echo $application->handle()->getContent();

} catch (\Exception $e) {
     echo "Exception: ", $e->getMessage();
}

https://docs.phalconphp.com/ja/latest/reference/tutorial.html#id3
のtutorialをphalconに変えています。

テスト

それではブラウザでアクセスしてみる。
「Exception: IndexController handler class cannot be loaded」
という表示が出てきたが、これは想定内。
Phalconではルーティングの設定をしていなければデフォルトのアクションは
IndexController@indexActionとなる。
まだコントローラーは作っていないのでこれは正常動作。

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?