oikynブログ

エンジニアの技術ブログ。主にWEB、iOS、サービス、ツールなどなど。

Phalcon 1.2.4 (PHP Framwork)::DIコンテナ&モジュール設定

Phalcon Framework

DIコンテナ&モジュール設定

http://docs.phalconphp.com/en/latest/reference/di.html

■基本
Phalcon\DI コンポーネント

<?php $di = new Phalcon\DI\FactoryDefault();

サービス登録方法

$di->set('{Service Name}', function() {
    return new ServiceClass();
});

サービス呼び出し方法

$variable = Phalcon\DI::getDefault()->get('{Service Name}');

定義されている主なサービス名
http://docs.phalconphp.com/en/latest/reference/di.html#service-name-conventions

  • dispatcher
  • router
  • url
  • request
  • response
  • cookies
  • filter
  • flash
  • flashSession
  • session
  • eventsManager
  • db
  • security
  • crypt
  • tag
  • escaper
  • annotations
  • modelsManager
  • modelsMetadata
  • transactionManager
  • modelsCache
  • viewsCache

※もちろん、これ以外にも、サービス登録、呼び出しはできます。

Phalcon 1.2.4 (PHP Framwork)::目次

Phalcon Framework

ドキュメント目次

http://docs.phalconphp.com/en/latest/index.html

  • DIコンテナ&モジュール設定
  • コントローラー
  • モデル
  • PHQL
  • ORMキャッシュ
  • ODM
  • ビュー
  • ビューヘルパー
  • リソース管理
  • Volt(テンプレートエンジン)
  • ルーティング
  • ディスパッチコントローラー
  • 名前空間
  • イベント管理
  • リクエスト
  • レスポンス
  • クッキー管理
  • URL&パス
  • セッションデータ保持
  • フィルタリング&サニタイジング
  • エスケープ
  • バリデーション
  • フォーム
  • 設定
  • ページネーション
  • キャッシュ
  • セキュリティ
  • 暗号
  • ACL(アクセスコントロール)
  • 多言語化
  • ユニバーサルクラス
  • ロギング
  • 注釈
  • コマンドラインアプリ
  • キューイング
  • DB抽象化レイヤー
  • DBマイグレーション
  • デバッグ

※時間があるときに、それぞれについて、 簡単に翻訳を含めて説明をできればな〜と。

PHP, Phalcon, Zephir

Zephir

http://blog.phalconphp.com/post/57161129440/phalcon-2-0-the-future
Phalconの2系からは、開発言語にZephir言語を使用しているそうで、
PHPC言語なイメージらしいです。

公式ドキュメント
http://zephir-lang.com/

導入方法
http://www.michaelgallego.fr/blog/2013/08/28/a-quick-introduction-to-zephir-language/

ソース
https://github.com/phalcon/zephir

必須モジュールインスト

sudo yum -y install git-core
sudo yum -y install gcc libtool

clangインスト

cd /usr/local/src/
sudo wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -Uvh epel-release-6-8.noarch.rpm
sudo yum install -y clang

json-cインスト

cd /usr/local/src/
sudo git clone https://github.com/json-c/json-c.git
cd json-c
sudo sh autogen.sh

sudo ./configure
sudo make
sudo make install
sudo make check

re2cインスト
http://labs.web-mix.jp/linux/centos/centos_add_rpmforge/

cd /usr/local/src/
sudo wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
sudo rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

---
# sudo vi /etc/yum.repos.d/rpmforge.repo
enabled = 0
---

sudo yum --enablerepo=rpmforge install -y re2c

zephirインスト

cd /usr/local/src/
sudo git clone https://github.com/phalcon/zephir.git
cd zephir/
sudo ./install

PHPアップデート
(※5.4系じゃないとコンパイル時にエラーになるので)

sudo yum -y install php php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml

# yumだと5.3までしかないので、それ以上に上げたい場合
//リポジトリの追加
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
 
//php5.4にアップデートされることを確認。
sudo yum --enablerepo=epel,remi,rpmforge info php
 
//アップデート実行
sudo yum --enablerepo=epel,remi,rpmforge update -y php php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml

Zephirコードのコンパイル

1.ZephirコードをCに変換
2.CコードをPHPエクステンションにコンパイル

以下を実行すると、/extフォルダに変換されたC言語コードが生成されます。

sudo ./bin/zephir compile

以下を実行すると、PHPエクステンションが生成されます。

cd /ext
sudo phpize
sudo ./configure
sudo make
sudo make install

生成されたsoファイルをphp.iniでロードするようにすればOK。

Vagrant + Windows7

Windowsで開発するのに、xamppとかwampとかありますが、 最近主流なのが、

Vagrant

ですね

もちろんmacでも使えます。

VirtualBox

ダウンロード&インスト

https://www.virtualbox.org/wiki/Downloads

4.3系はネットワーク周りに不具合あるらしく、

4.2系がいいらしい。(現状)

https://www.virtualbox.org/wiki/Download_Old_Builds

Vagrant

ダウンロード&インスト

http://downloads.vagrantup.com/

OSイメージ

http://www.vagrantbox.es/

セットアップ

$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up

ちなみに、私がインストしたものは

http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box

設定ファイル(Vagrantfile)

vagrantを起動する前に、とりあえずこれだけ設定すればOKかな。

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.box = "CentOS_64" #ボックス名
    config.vm.network :forwarded_port, guest: 80, host: 80 #フォワードポート
    config.vm.synced_folder "./data", "/var/vagrant_data" #共有フォルダ
end

SSH

Winからは、puttyPoderosaからsshできます。

Host: 127.0.0.1
Port: 2222
Username: vagrant

Private key: ***/.vagrant.d/insecure_private_key
or
Password:vagrant

基本コマンド

# 開始
vagrant up

# 終了
vagrant halt

# 破壊
vagrant destroy

# ステータス
vagrant status

  

sshで入って、ApacheMySQLPHPなど基本を入れて、

http://localhost

と入れて確認できます。

マークダウンエディタ

技術メモなどはマークダウンで記録しよう!と、最近始めました。

普段、WinもMacも両方使うし、

職場、自宅でもいつでも見れるほうがいいので、

クラウド型のエディタを使うことにしました。

Markable.in

http://markable.in/

  

このサイトから、いくつか気になるもの試してみて、

”Markable.in”に決めました。

http://www.find-job.net/startup/20-markdown-editors

マークダウンで記録しておくと、

ブログにもコピペでいけるし、いいかなと。