16
Zend_Tool入門 Introduction to Zend_Tool Zend Framework meetings(in Japan)#2 - March 6, 2010

"More" Introduction to Zend Tool

Embed Size (px)

Citation preview

Page 1: "More" Introduction to Zend Tool

Zend_Tool超入門

Introduction to Zend_Tool

Zend Framework meetings(in Japan)#2 - March 6, 2010

Page 2: "More" Introduction to Zend Tool

Who are you?

➢   sasezaki 

➢I'm not PHP'er !?

➢creating.. Spidering PHP Library - “Diggin”.http://diggin.musicrider.com/

My Talks about ZF

Web::CollectorのZFのポートの話もしてます

Page 3: "More" Introduction to Zend Tool

Zend_Tool ZF1.10以上の話

Page 4: "More" Introduction to Zend Tool

What is Zend_Tool ?

Zend_Toolとは、Zend Framework用コマンドラインツールそもそも、Zend_Console_Getoptの作者であり、ZF1.8より前のリードメンテナー Wil Sinclair(最近lithuimに参画しましたけどなんか話題になってませんね!!!1)が、Zend_Consoleとしてコマンドライ

ンツールが作成が開始されたもののリリースにはいたらず、Zend_DbのリードRalph Schindlerがメインメンテナーとして、Zend_Toolというコンポーネントとして作成されました。プロポーザル期のwikiのページをに載ってたと思いますが、symfonyやcakephpそれにdjangoなどのフレームワークを研究(? 使ってみただけ感はあるけど)して開発に取り組んでるんですよね。もちろんRalphだ

けじゃなく今やDoctrineコミッターになったbeberleiなどのちゃちゃ入れも入ってたりします。初期のバージョンであるZF1.6はlaboratoryに付属しはじめ、うっかり初期のものに手をだしちゃっ

た、phpcredits()の一人でPHPセキュリティーでも知られるyohgakiさんをちょっと苦しめた不安定さがあったものの、まあさすがに1.10にもなると、安定・・(あ、またバグっぽいものが!)、てまたtrunkに追加されとるやんかー。というZFには珍しく?未だにバージョンアップをしてる恐ろしいコンポーネント。ラルフのスライドhttp://www.slideshare.net/ralphschindler/extending-zendtoolでは、Rapid application developmentの文字が踊ってたりしますが、ご存知のとおりZF1.10より前ではインクルードパス総読みしまってて、型落ちしたパソコンでコマンドを走らせると来ない2,3分

レスポンスが帰ってナウでヤングなコンピューター以外を相手にしない、どこがRapidやねんとつっこみたくなる遅さがありましたが、ZF1.10ではBase Loaderが導入されてまあまあ遅くはないかなあという感じになりました。1.10では搭載されたシステムプロパイダーの数も増えてぐぐっと増えて、使える(canじゃなくてuseful)感じになってきたかなあと思います。まあ、create系のコマンドばっかりですが。。。ソース内部をご覧になれば分かるとおり、Zend_Tool内部でTooling Frameworkというコントローラっぽい何かがリクエストからdispatchするという形式をとっており、CLIにもGTKにも対応してるのはZend_Controllerだけ!(○○先生の作品が読めるのはジャンプだけ風)と思っていたZFユーザを一瞬へなへなさせる疎結合っぷりだったりしますが、

長いので略。

Page 5: "More" Introduction to Zend Tool

$zf --info$zf --setup

$zf --help↓(e.g.)$zf --help show version

zfコマンドのグローバルオプション

●ヘルプの表示

●zfコマンド用(ツーリングクライアント)のセットアップ(以下のはオプションについてはzf.phpにコーディングされている。)

Usage: zf [--global-opts] action-name [--action-opts] provider-name [--provider-opts] [provider parameters ...] Note: You may use "?" in any place of the above usage string to ask for more specific help information. Example: "zf ? version" will list all available actions for the version provider.

Page 6: "More" Introduction to Zend Tool

$zf show manifest

$zf show version.major-part -n 0

プロパイダーによるコマンドの利用

 参考 manual/ja/zend.tool.usage.cli.html http://d.hatena.ne.jp/noopable/20100113/1263395986 http://codezine.jp/article/detail/4489

マニフェスト一覧の取得 コマンド全ての詳細を知りたい場合に利用

zfのヴァージョンが1系統か2系統か知りたい!しかも表示するときは名前は表示しないで欲しい!そんな時は・・ (ないがな)・

Page 7: "More" Introduction to Zend Tool

プロパイダーを作る・利用可能にする(1)

$zf say hello --name wozozo

actionprovider

引数内部でZend_Console_Getoptを利用

Page 8: "More" Introduction to Zend Tool

プロパイダーを作る・利用可能にする(2)

$zf enable config.provider My_Component_HelloProvider

$zf --setup config-file

コンフィグファイル(.zf.ini)を作成していない場合以下のコマンドにて作成

コンフィグに作成したプロパイダーを追加

コンフィグファイルにbasicloader.classes.0 = "My_Component_Provider"

という形式で追加される。

Page 9: "More" Introduction to Zend Tool

Hello World以外のプロパイダーの作成

プロパイダーを作る・利用可能にする(3)

Zend_ApplicationとZend_Cache_Managerによる$zf clear cache$zf clean cache の作成(ネタ)

Page 10: "More" Introduction to Zend Tool

ZF 1.10ではアプリケーション用のテンプレート構成とCache群を扱うZend_Cache_Managerが同梱。

また、このManagerを利用するZend_Application_Resource_Cachemanagerがついてきます!

つまりCacheを一連して操作するコマンドも作れるという図式(ただし、Zend_Application利用してる場合に限る)

※ Zend_Cache_Managerについては未翻訳ですので翻訳していただける方を求めています!

翻訳についてはhttp://d.hatena.ne.jp/satoruyoshida/20100130/1264859250

プロパイダーを作る・利用可能にする(4)

Page 11: "More" Introduction to Zend Tool

プロパイダーを作る・利用可能にする(5)

特定のプロジェクトディレクトリ下でのみ特定のプロパイダーを読み込ませる場合のおばあちゃんの知恵袋的対応

Page 12: "More" Introduction to Zend Tool

 Zend_Application利用のプロパイダー(てきとーなサンプル) ※ まっとうな方法はnoopableさんがきっとやってます! Actionについては省略します。(specialitiesやpretendなどを組み合わせて細かいことができます)

Page 13: "More" Introduction to Zend Tool

…ということでプロパイダーの完成

Page 14: "More" Introduction to Zend Tool

映像特典(おまけ)

Page 15: "More" Introduction to Zend Tool

「Zend Frameworkはフレームワークを作るためのフレームワークだからコマンドラインツールだってオレオレコマンド名で作りたい!!!!」

                  ・・・ですよね!?

しかし、1.10のZFクラスならびにZend_Tool_Frameworkでは”zf”コマンド名が直書き…悲しいですね。↓そんな貴方のためにzfコマンドの拡張をご用意しました。

Page 16: "More" Introduction to Zend Tool

詳しくはWebでhttp://github.com/sasezaki/Diggin_Tool