“ZendFramework” カテゴリのアーカイブ

Dutch PHP Conferenceのスライドが公開されたようです。

http://www.suspekt.org/2009/06/16/dutch-php-conference-the-slides/

中でも気になったのが「Secure Programming with the Zend Framework」というスライド。

Zend Frameworkを使う際、セキュリティ的に気をつけなければいけないポイントと、
各クラスの使い方をまとめてくれています。
既に知っている内容も多いかと思いますが、ZF使い必見のスライドです。

Comments Secure Programming with the Zend Framework はコメントを受け付けていません。

先ほどのzfコマンド(→こちら)を使うと、コマンドラインでZendFrameworkのデフォルトファイルを生成することができます。

ZendFrameworkってディレクトリ構成をどうしたらいいかわからずに先に進めない!という方は、是非お試しください。

http://framework.zend.com/manual/ja/zend.tool.project.create-a-project.html
↑のマニュアルを参考にしました。

「tool」という名前のディレクトリを作成(どんな名前でも可)して、そこに作成していきます。

mkdir tool
cd tool
zf create project

え!これだけ?と、思いましたが、本当にこれだけです。

Comments Zend_Tool_ProjectでZend Frameworkのデフォルトファイル作成 はコメントを受け付けていません。

さて、かなり気になっていたZend_Tool関連のお話です。
CakePHPにはbakeというコマンドがありますが、Zend Frameworkはzfコマンドが使えるようになったようです。(といってもかなり前から・・・私がいかにZendFrameworkサボっていたかがわかってしまいます・・・)

http://framework.zend.com/manual/ja/zend.tool.framework.clitool.html
↑のマニュアルを参考にしました。

phpがインストールされていて、ZendFrameworkソースファイルを取得していることを前提に進めます。
ちなみに私はmacportsのphp5をインストールしています。
ZendFrameworkは/projects/zf/library/Zend/となるように置いています。

まず、

which php
/opt/local/bin/php

でphpバイナリがあるパスを確認します。この場合は、/opt/local/binがそうです。

cd /opt/local/bin

http://framework.zend.com/svn/framework/standard/trunk/bin/
cdコマンドで移動し、上記URLにあるzf.phpとzf.shをコピーします。
zf.shはzfとリネームします。

次にphp.iniでZendFrameworkをinclude_pathに追加します。
(既に設定してある場合は省略)
正しくinclude_pathに指定されたか、を確認します。

php -i | grep include_path
include_path => .:/projects/zf/library => .:/projects/zf/library

これでzfコマンドが使えるようになります。

Comments Zend_Tool_Framework – zfコマンドをMacOS10.5Leopardで使えるようにする はコメントを受け付けていません。

ZendFramework勉強会@Tokyoに参加してきました。

ZFではじめる携帯サイト – bayside

携帯サイトをZendFrameworkを利用して作る際に必要となる知識を、全般的にざっと紹介。

FirefoxのUserAgentSwitcherというアドオンは、UserAgentを偽装するだけだけれど、FireMobileSimulatorというのが絵文字なども再現してくれてすごいとのこと。

あとで入れてみよう。。。

思い立ったらZF 〜 今日の目次 〜 – junichiro

CakePHPとZendFrameworkの比較をしながら、それぞれの特徴をざっと紹介。

junichiroさんが使っているZendFrameworkのファイルレイアウトは、githubにあるらしい。ファイルレイアウトに悩んでその先に進むまでが大変なときは、ここから利用させてもらうと便利!→http://github.com/junichiro/zf-starter/tree/master

実際に簡単なコードを書いて、Zend_Formなどを説明。

$ git clone git://github.com/junichiro/zf-starter.git zf-starter

さっそく取得してきてみた。githubの仕様(?)で空のディレクトリはUPできないらしいので、moduleなどは入っていないとのこと。

はじめてのZend_Form – twk

Zend_Formを使ったサンプルコードをたくさん用意して、紹介。

実際みんなどう書いているの?という声がいろんなところで聞かれるので、とても参考になった。

コードはPDTを利用して書いているとのこと。コード補完のために各所にコメントがうめられていて、この一手間をかけることで、コーディングがかなりラクになるのだろうなと思った。


Phwittrについて – heavenshell

Phwitterのソースはcodereposで管理されている→http://coderepos.org/share/browser/events/phpframework/zend_framework/trunk

viewでshort_tagを使うのにRevulo_View_Phtmlcを使っているらしい。

【感想】

実践的な内容が多く、参考になった。

ZFが自由度が高いというのを、複数人のコードの書き方やディレクトリ構成を見ることで、実際に体感した。

自由度が高いために、「できない」ことは少なくなるけれど、「できる」ことだけを集めた後で自分でルールを決めないと、ひとつのプロジェクトでも統一感のない書き方に、簡単になってしまうんだろうなと思った。

自作のZFコンポーネントなど – wads

自作のコンポーネントを紹介してくださいました。

プレフィックスがwadsというのがうけた。

たとえばZend_Cacheとか – noopable

Zend_Cacheの使い方。これは、もう少しじっくり詳しく聞いてみたかった。

ZFにまつわる何か – m-takagi

iPhoneでスライド操作していたのが印象的だった。

ノートPCの壁紙が下地島で撮った飛行機の写真だったのが印象的だった。

ZendFrameworkにバグ報告をする – cocoiti

POSTのときだけatom_xmlが着かないバグがあり、バグ報告をした際のお話。

IRCにくると、案外日本語でバグ報告ができるかも!?

いろいろ – sasezaki

12月の時の参考資料。http://handsout.jp/slide/1027

デバッグ – wozozo

ビューヘルパー作った!

さてさて、いつものことですが、肉に向かいます。いってきます!

Comments ZendFramework勉強会@Tokyo参加報告 はコメントを受け付けていません。

ZendFramework勉強会@Tokyoが開催されます。

以下抜粋

イベント内容

ZendFrameworkの勉強会を行います。

20人ほどの会場で、カジュアルな感じの勉強会になると思います

勉強会終了後には参加者同士で交流を深めるために懇親会を行います。
参加される方は申込み時に合わせて参加表明をお願いします。

■概要
日時: 2009年04月04日(土) 14:00~18:00
会場: 東京都渋谷区

申し込みは 2009-03-17 18:00:00 〜 2009-04-04 14:00:00 まで、
こちらから→ http://events.php.gr.jp/events/show/72

Comments ZendFramework勉強会@Tokyo参加予定 はコメントを受け付けていません。

ZendFrameworkはSubversion(以下SVN)から取得して常に最新版での動作を確認することができる。
マニュアルの1.2. インストール参照)
このSVNリポジトリにはdocumentationディレクトリもあり、各国の言語でのマニュアルも日々更新されている。
MacBookAirはHDD容量が少なめなため、SVNから取得した最新マニュアルの日本語版のみをHTML作成したい。できればZendFramework日本語マニュアルを自分が見やすいと思うような好みのデザインにCSSで変更したい。
というわけで、翻訳の神id:m-takagiさんに色々と助けていただきながら作成してみた。

下準備 – MacPortsからautoconfとlibxsltをインストール

ZendFrameworkのマニュアルはDockBookというもので書かれているため、SVNから取得できるのはxmlファイルとテンプレートとなるデザインのみ。
これをHTMLにするにはMacにautoconfとlibxsltというものをMacPortsからインストールする。
MacPortsのインストールについては前回の記事を参照。

ターミナルを立ち上げ、以下のコマンドでautoconfとlibxsltをインストール(若干時間がかかる)

$ sudo port install autoconf
$ sudo port install libxslt

SVNから日本語マニュアルHTML作成に必要なもののみ取得

SVNからのソースの取得方法は、ここでは省略する。(取得方法については他サイトを参考に)
SVNから下記の2ディレクトリ以下のもののみチェックアウトする

なぜ英語版も必要かは後述
チェックアウト完了後、ターミナルを起動。
作成されたjaディレクトリにcdコマンドで移動。
下記コマンドをうつ。

$ autoconf
$ ./configure
$ make

makeと打ったあと、
warning: failed to load external entity “module_specs/Zend_Dojo-View-Helpers.xml”
というワーニングがいくつか出るが、id:m-takagiさんによると、jaディレクトリにファイルが無いワーニングで、ファイルが無い場合はenディレクトリから英語版のものを利用することになっているので、問題ないとのこと。
このような部分で英語版を利用するのでenもSVNから取得していた。
warningが出た後しばらくそのまま待っていると、writing ……とファイル作成中の表示が出てja/html以下にhtmlファイルが作成される。(全ファイルを作成するまでに結構時間がかかる)

できたーーー。と感動していると、実はja/html/imagesディレクトリが無くて一部画像が表示されないので、以下2ファイルを本家マニュアルから拝借し、ja/html/imagesディレクトリを作成してgifファイルをpngファイルに変更し、保存。

pngファイルにするのが面倒な場合は、手元にある適当な画像を置いてもOK。

ja/html/index.html
このファイルをブラウザで開くと、ZendFrameworkマニュアル日本語版が見れる。

あとはSVNをupdateするたびにコマンドでhtmlを作成しなおせばOK。

HTMLのデザインを変更するには、
ja/html/dbstyle.cssファイルでCSSを書き換えてあげればよい。

Comments 2 コメント »

苦労したのでメモ。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$Url = 'http://ほげほげー.com/ほげー/ほげー.php';
$UserId = 'ユーザID';
$Pwd = 'パスワード';
$binaryData = @file_get_contents(’ファイル名’, FILE_BINARY);
 
$arrUrl = parse_url($Url);
$host = $arrUrl["host"];
$path = $arrUrl["path"];
$port = isset($arrUrl["port"]) ? $arrUrl["port"] : 80;
$socket = @stream_socket_client('tcp://' . $host . ':' . $port);
$strHeader = "POST " . $path . " HTTP/1.1\r\n" .
             "Host: " . $host . "\r\n" .
             "Content-type: application/jpeg\r\n" .
             "Authorization: Basic " . base64_encode($UserId . ":" . $Pwd) . "\r\n" .
             "Content-length: " . $entity->size . "\r\n" .
             "\r\n";
@fwrite($socket, $strHeader . $binaryData . "\r\n");
while ($buff = @fread($socket)) {
    $response .= $buff;
}
@fclose($socket);

ちなみにZendFrameworkのライブラリにZend_Httpという便利なものがあります!!!
Zend_Httpなら、下記のように書くだけ!

1
2
3
4
5
6
7
8
9
10
11
require_once 'Zend/Http/Client.php';
 
$Url = 'http://ほげほげー.com/ほげー/ほげー.php';
$UserId = 'ユーザID';
$Pwd = 'パスワード';
$binaryData = @file_get_contents(’ファイル名’, FILE_BINARY);
 
$client = new Zend_Http_Client();
$client->setUri($Url);
$client->setAuth($UserId, $Pwd, Zend_Http_Client::AUTH_BASIC);
$client->setRawData($binaryData, 'application/jpeg')->request('POST');

Comments ベーシック認証のかかっている別サイトにJPEG画像を生データでPOSTするメモ はコメントを受け付けていません。

ZendFrameworkのZend_Pdf(http://framework.zend.com/manual/ja/zend.pdf.html

を、試してみました。
ところが、日本語が表示されない。

こちらのサイト→(Zend_Pdf で日本語が使えるようになってた
を教えてもらって、ここに書いているようにフォントファイルをダウンロードして配置したら、ちゃんと日本語が使えました!

2008/08/05現在、ZendFrameworkのZend_Pdfで利用できるデフォルトのフォント指定は、下記のもののみでした。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    const FONT_COURIER = 'Courier';
    const FONT_COURIER_BOLD = 'Courier-Bold';
    const FONT_COURIER_OBLIQUE = 'Courier-Oblique';
    const FONT_COURIER_ITALIC = 'Courier-Oblique';
    const FONT_COURIER_BOLD_OBLIQUE = 'Courier-BoldOblique';
    const FONT_COURIER_BOLD_ITALIC = 'Courier-BoldOblique';
    const FONT_HELVETICA = 'Helvetica';
    const FONT_HELVETICA_BOLD = 'Helvetica-Bold';
    const FONT_HELVETICA_OBLIQUE = 'Helvetica-Oblique';
    const FONT_HELVETICA_ITALIC = 'Helvetica-Oblique';
    const FONT_HELVETICA_BOLD_OBLIQUE = 'Helvetica-BoldOblique';
    const FONT_HELVETICA_BOLD_ITALIC = 'Helvetica-BoldOblique';
    const FONT_SYMBOL = 'Symbol';
    const FONT_TIMES_ROMAN = 'Times-Roman';
    const FONT_TIMES = 'Times-Roman';
    const FONT_TIMES_BOLD = 'Times-Bold';
    const FONT_TIMES_ITALIC = 'Times-Italic';
    const FONT_TIMES_BOLD_ITALIC = 'Times-BoldItalic';
    const FONT_ZAPFDINGBATS = 'ZapfDingbats';

Comments ZendFrameworkのZend_Pdfで日本語フォントを使う はコメントを受け付けていません。