カオナビメンバー本『TECHNICAL MASTER はじめてのPHP エンジニア入門編』のこだわりポイント

この記事は株式会社カオナビ Advent Calendar 2024 シリーズ2の4日目の記事です。

概要

この記事では 2024/12/3(火)に発売した『TECHNICAL MASTER はじめてのPHP エンジニア入門編』という書籍でのこだわりポイントを紹介します。流石に3日連続での書籍紹介なので、ちょっとやりすぎじゃね?と思わなくもないですが、我々8名の8ヶ月の努力が詰まったものなので、紹介させてください!

この書籍を書いた経緯や内容については以下の記事に記載していますので合わせて読んでいただけるとありがたいです。

今回お話する書籍は以下のもので、絶賛発売中です。よろしくお願いします!!!

こだわりポイント その1

株式会社カオナビ Advent Calendar 2024 シリーズ1の3日目でも書いた内容ではあるのですが、今回の書籍はPHPを扱っていますが、PHP関連の情報だけを紹介するのではなく、Webアプリケーションエンジニアとしてどうあるべきか、を示すことにチャレンジしています。

どうしてもこういう言語系の書籍は、その言語そのものの仕様やテクニックを紹介するものが多くなりがちですが、この書籍ではそこに重点を置くのではなく、あくまでもWebアプリケーションをよりスムーズに開発するにはどういう知識が必要なのかを知っていくということに重きを置きました。

そういう意味ではPHP自体の知識を得るためにこの書籍を手に取ろうとしている方は本当に申し訳ありませんが、そういう書籍ではないです。

こだわりポイント その2

こういう書籍ではかならず1章や2章あたりにある「開発環境構築」を各OSでやってみようという説明をざっくり削りました。

もちろんあったほうが親切なんだろうなとは思うのですが、この「開発環境構築」のパート、例えば自分が Windows を使っている場合、macOS の部分のページは必要ないし、逆もしかり。また、時間が経過してOS側の仕様が変わっても書籍上にあるとアップデートするのがむずかしい、ということを以前から感じていました。

そのため、この「環境開発構築」部分に関しては、目次案を作る段階から載せないということを決めて進めました。

なら、書籍上のコードを試す場合はどうするんだよということですが、別途 GitHub 上で開発環境構築の提供を行うことにしました。それが以下のものになります。

github.com

こちらはOSSとして管理し、ベストエフォートで今後も更新をしていく予定です。目標としては PHP 8.3 が現役の間は動くものとして維持できればなと思っています。

そんな書籍です

こういったこだわりポイントをもって我々8名が執筆した書籍が、2024/12/3(火) に物理本および電子書籍が発売になりました。我々としては本当に自信を持っておすすめできるものに仕上がったと思っていますので、ご興味のある方は購入よろしくお願いします。

最後に

株式会社カオナビでは一緒に働く仲間を募集しています。カジュアル面談も行っていますので、ご興味がある方は気軽にお声がけください。

corp.kaonavi.jp

カオナビメンバー本『TECHNICAL MASTER はじめてのPHP エンジニア入門編』について

この記事は株式会社カオナビ Advent Calendar 2024 シリーズ1の3日目の記事です。

概要

この記事では本日 2024/12/3(火)に発売の『TECHNICAL MASTER はじめてのPHP エンジニア入門編』という書籍について紹介します。書籍を執筆した経緯等に関しては、同じ株式会社カオナビ Advent Calendar 2024 のシリーズ2の2日目の記事として紹介しましたので、そちらを先に読んでおいていただけるとより内容がわかりやすいと思います。

今回お話する書籍は以下のもので、絶賛発売中です。よろしくお願いします!!!

どういう書籍なのか

今回執筆した『TECHNICAL MASTER はじめてのPHP エンジニア入門編』という書籍はPHPの入門書ではありません。すでに何らかの書籍でPHPの基本的なことは学んでいる方を対象としています。

これは、昨日の記事にも書いたことですが、PHPにはたくさんの初心者向けの書籍があり、Laravel等のフレームワークの使い方の書籍も結構あるのに、その間を埋める本がなく、初心者の方はその間のギャップに苦しんでいるのではないか?という仮説をもとにこの書籍を書きました。

実際、初心者PHPerの方に「次どの書籍を読んだらいいですかね?」と言われたときになかなかおすすめできる書籍がなく、ある意味仕方がなくフレームワークの使い方の書籍を教えるみたいな状態が本当に長い間続いていたのがとても残念だなと思ってました。

なので、今回の書籍は初心者から中級者にステップアップをしていく方向けの書籍として想定しています。最近PHPを始めて初心者向けの書籍は読み終わった、もしくは数年前までPHPで開発していたが長らくPHPからは離れているからおさらいからやりたい、みたいな方に読んでもらえればと思ってます。

あ、そういえば、初心者向けの書籍といえば明日次の書籍が発売になりますね。こちらを読んでからカオナビメンバー本を読むという流れがスムーズではないかなと思ってます。(出版社を超えた宣伝)

目次を見てみよう

この書籍の出版社である秀和システムさんの書籍ページに目次が掲載されています。

www.shuwasystem.co.jp

ちょっと長くなりますが、貼り付けてみました。

Part01 PHP言語の知識と新機能

 Chapter01 最近のPHP
  01-01 PHPの特徴
  01-02 PHPの歴史
  01-03 PHPのさらなる進化
  01-04 PHPのライフサイクル
  01-05 PHP言語の発展プロセス

 Chapter02 基本構文
  02-01 基本的な構文
  02-02 変数、定数、型
  02-03 式
  02-04 基本演算子
  02-05 高度な演算子
  02-06 特殊な演算子
  02-07 条件分岐
  02-08 ループ
  02-09 外部ファイル参照
  02-10 関数
  02-11 クラスの基本機能
  02-12 クラスの応用機能
  02-13 名前空間
  02-14 リファレンス

 Chapter03 PHPの新機能とモダンな機能
  03-01 配列
  03-02 型宣言の追加の歴史
  03-03 PHPDocとアトリビュート
  03-04 トレイト、列挙型(Enum)
  03-05 PHP標準化の流れ

 Chapter04 パッケージマネージャー
  04-01 Composer
  04-02 Composerの使い方
  04-03 オートローディング

 Chapter05 モダンなPHPフレームワーク
  05-01 フレームワーク誕生の流れ
  05-02 Webアプリケーションフレームワークの特徴
  05-03 Laravel
  05-04 Symfony
  05-05 CakePHP
  05-06 Slim

Part02 より良いアプリケーションを作るための知識

 Chapter06 例外処理とロギング
  06-01 例外とは
  06-02 例外処理の書き方
  06-03 ログを記録する
  06-04 ロギングの注意点

 Chapter07 認証と認可
  07-01 認証と認可の違い
  07-02 Session認証
  07-03 トークン認証
  07-04 Laravel での認証の例
  07-05 認証強度を上げるための方法

 Chapter08 セキュリティ
  08-01 HTTPについて
  08-02 脆弱性の原因
  08-03 基本的な対策
  08-04 代表的な脆弱性一覧
  08-05 XSS(クロスサイト スクリプティング)
  08-06 OSコマンド インジェクション
  08-07 SQLインジェクション
  08-08 ディレクトリ トラバーサル
  08-09 セッション ハイジャック
  08-10 CSRF(クロスサイト リクエスト フォージェリ)
  08-11 HTTPヘッダ インジェクション
  08-12 バッファオーバーフロー
  08-13 安全なウェブサイトの作り方

Part03 アーキテクチャと設計

 Chapter09 設計原則とパターン
  09-01 アーキテクチャ
  09-02 依存関係
  09-03 SOLID原則
  09-04 アーキテクチャパターンとアンチパターン

 Chapter10 RESTful API
  10-01 RESTful APIとは
  10-02 RESTful APIの設計
  10-03 リクエスト・レスポンスの設計
  10-04 ドキュメント

 Chapter11 データベース設計と運用戦略
  11-01 なぜリレーショナル・データベースを使うのか?
  11-02 データベース設計
  11-03 基本のリレーションシップ
  11-04 ORマッパー
  11-05 マイグレーション

Part04 アプリケーション開発プロセス

 Chapter12 日常的な開発プロセス
  12-01 アジャイル開発
  12-02 テスト駆動開発(TDD)
  12-03 PHP における自動テスト
  12-04 コードレビュー

 Chapter13 継続的インテグレーション(CI)
  13-01 GitHub Actions
  13-02 GitHub Actionsでテストを実行できるようにする
  13-03 GitHub Actionsで静的解析を実行できるようにする
  13-04 GitHub Actionsで脆弱性検知をできるようにする
  13-05 GitHub ActionsでSlack通知を行えるようにする
  13-06 GitHub Actionsに関わる設定

見ていただくとわかるように次のような流れになっています。

  • Part01 はPHPの言語そのものおよびツール/フレームワークで知っておいたほうがいいことのおさらい
  • Part02 はアプリケーションを実装するうえで知っておく必要がある知識の紹介
  • Part03 は設計をするうえで知っておく必要がある知識の紹介
  • Part04 はチーム開発をするうえで知っておく必要がある知識

上記をみるとわかるように、この書籍はPHPの書籍なのか?と思えるほど、PHPの紹介パートの割合は少ないです。もちろん、Part02以降もPHPを例として使っていますが、PHPそのものを学ぼうというよりはWebアプリケーション開発を行う上で必要な知識を網羅的に知っていこうということを主眼においています。

内容的には一部高度なことも扱っているため、初心者からのステップアップをしようという方は最初読んだときにわからないこともあるとは思います。が、それもある意味想定通りで、この書籍はWebアプリケーションを開発するにあたって、現時点で自分が何をしっていて、何をしらないのかを仕分けできるようにしたいという狙いもあります。で、しらない/わからないという点に関しては、この書籍から派生して関連する書籍等から知識を得ていくという流れを作りたいと思っています。

つまり、この書籍は最初に言及した通り、PHPの入門書ではなく、PHPをつかったエンジニアになるための入門書となります。そういった意味で、この書籍の名称はちょっと分かりづらいですが、我々の狙いを端的に表したものとなっています。

ようこそエンジニア入門の入口へ

ここまで書いてきたようにエンジニアの入門書として我々8名が執筆した書籍が、本日 2024/12/3(火) に物理本および電子書籍が発売になります。我々としては本当に自信を持っておすすめできるものに仕上がったと思っていますので、ご興味のある方は購入よろしくお願いします。

最後に

株式会社カオナビでは一緒に働く仲間を募集しています。カジュアル面談も行っていますので、ご興味がある方は気軽にお声がけください。

corp.kaonavi.jp

カオナビメンバー本『TECHNICAL MASTER はじめてのPHP エンジニア入門編』ができるまで

この記事は株式会社カオナビ Advent Calendar 2024 シリーズ2の2日目の記事です。

概要

この記事では2024/12/3(火)に発売予定の『TECHNICAL MASTER はじめてのPHP エンジニア入門編』という書籍ができるまでの過程を紹介します。書籍の内容に関しては、同じ株式会社カオナビ Advent Calendar 2024 のシリーズ1の3日目の記事として紹介します。

今回お話する書籍は以下のもので、絶賛予約受付中です。よろしくお願いします!!!

はじまり

遡ること8ヶ月前(そんな前なのか...)の4月の半ばに今回の書籍の出版元である秀和システム様から以下のようなお声がけをいただいたところからはじまります。

  • カオナビは、いろいろなイベントにスポンサーとして積極的に参加されている
  • そういう企業に所属されているみなさんにぜひ書籍を一緒に書いてほしい

カオナビではここ数年積極的にイベントへのスポンサーを行い、登壇も結構な数を行っていて、それが出版社の方の目に止まったというのは、みんなでこういう活動してきたことが広く認知されてきたんだなと感慨深いものがありました。

書籍を執筆するというのはなかなか機会をえることが難しいことでもあり、ぜひやろうよと社内のメンバーに募ったところ多くのメンバーが手を上げてくれました。

出版社の編集の方からは「通常こういう書籍では4~5名くらいの方で書かれることが多いのですが...」というお話はいただいたのですが、手を上げた8名で執筆していこうということで始まりました。今思うと8名でよかったと思っています。(4名とかだったら多分負担的に厳しかった...)

最強の目次案

執筆メンバーが決まったので、そこからはどういうものを書くのかというミーティングを行いました。どういう層向けに書くのかという点に関しては、最初から全員がほぼ一致していました。

  • 初心者向けの書籍は大量にある
  • フレームワークの使い方の書籍もたくさんある
  • しかし、PHPにはその間を埋める初心者から中級者に行くための書籍がない

PHPには以前「パーフェクトPHP」という誰にでもおすすめできる書籍がありました。しかしながらこの書籍もPHP5の時代の書籍であり、今これを読んでおいてとはなかなか言いづらい(今読んでも良い書籍ですが、PHPはその後結構な進化をしているので)。

なので、今初心者のPHPerから「どの書籍をよめばいいですか?」と言われたときにおすすめできる書籍を書こう!というのが全員一致の意見でした。

そのため、ゴールデンウィークの間に執筆メンバー全員に「最強の目次案」をそれぞれ作ってくるという宿題を渡して、ゴールデンウィーク明けに突き合わせて執筆を開始しようということなりました。

担当章決定~執筆開始

ゴールデンウィーク明けにミーティングを開き、それぞれが作った目次案を突き合わせて、自分たちの中での「最強の目次案」を組み立てていきました。

そうして目次案ができたので、その後はそれぞれどこを書くのかの分担を行い、以下のものを準備して執筆開始です。

その後、各章のアウトラインの作成を7月までに行い、そこで基本的な方向性は決まったので、そこからは各自担当部分を黙々と執筆するという作業を9月くらいまで行いました。

校正、校正、また校正

各自の執筆作業が終わってから10月と11月はひたすら校正の日々を行っていました。執筆作業自体も平日に時間を捻出するのが難しかったですが、校正もなかなか各自時間をとるのがむずかしく、毎週末締め切りまで頑張るみたいなことを2ヶ月間繰り返していました。

校正の最終盤に外部の方に査読をお願いして貴重なフィードバックをたくさんいただきました。正直2ヶ月位同じ文章を何度も何度も読んでいて、日本語的になんかおかしいみたいなところも自分たちではもうわからなくなっていたので、外部の方に査読いただけたのは本当に助かりました。

査読いただいたびきニキさんには査読のレポートまで書いていただきました。本当にありがとうございました!

note.com

そして発売へ

最初の方に書きましたが、8名での執筆って多いかなと思っていましたが、今はこの人数で良かったと心から思っています。やはりみんなそれぞれの仕事で日々忙しくしてますし、家族との時間もありますから、執筆/校正の時間を作るのは本当に大変でした。この人数だからこそいいものができたと思っています。

というわけで我々8名が執筆した書籍がお声がけをいただいてから8ヶ月後、ようやく明日 2024/12/3(火) に物理本および電子書籍が発売になります。我々としては本当に自信を持っておすすめできるものに仕上がったと思っていますので、ご興味のある方は予約・購入よろしくお願いします。

最後に

株式会社カオナビでは一緒に働く仲間を募集しています。カジュアル面談も行っていますので、ご興味がある方は気軽にお声がけください。

corp.kaonavi.jp

好みの表紙について

この記事は 積読 Advent Calendar 2023 の12日目の記事です。

adventar.org

自分がどのように本を選んでいるんだろうということをさらっと(ほんとうにさらっと)書いていこうと思います。

注意) 本文中にでてくる Amazon のリンクはおそらくはてなアフィリエイトリンクになっていると思うので、そういうのが苦手な方はお気をつけください。

表紙で選んでいることが多い

自分が本を探している場合、なんとなく探していることはほとんどなく、こういうテーマで本はないかなと探していることのほうが多いのですが、そういう場合にやっぱり目にとまるのはあるパターンの表紙。

最近だと MANNING のこれ系の表紙のものはほぼ確実にポチってしまい積まれていく。

※といってもここ数年は物理本を買わない派なので、他のみなさんみたいに積んである写真があるわけではなく、kindleのライブラリに大量に積まれていく

こういう感じのものもポチってしまう。

MANNING の本はどこの出版社から出ていたとしても裏切られることがあまりないので、安心してポチってしまうというのがあるんだが、kindleに積まれたことで安心してしまい、なかなか読み始めないということが起きてしまっていることを、今回のアドベントカレンダーを書くことによって反省したので、この年末年始できちんと読ませていただこうと思います。

久々のはてな

自分がブログ的なものを最初に書いたのは「はてなダイアリー」で、そのころは毎日更新するみたいなエグいことをしていた気がするんだが、今回はてなには久々に戻ってきた感じで、久々に書くいうよりもダイアリーからブログにデータ移行したあとに初めて書いた記事がこれのようだ。(一つ前の記事が 2013/05/21 という...)

最近は X(旧Twitter) で気軽にポストできない感じがしていて、かと言って Zenn とかでしっかりと技術的な内容のものを書けるわけでもないみたいな感じでもやもやしていたので、これからははてなブログに気軽に書いていこうかな。

CakePHP 2.3.5 のメール送信で文字化けをしたら

CakePHP 2.3.5 のCakeEmailはバグっていて、ISO-2022-JPの特定の文字が入っているメールを送信しようとすると文字化け(というか、特定の文字列以降、その行がざっくりなくなる)します。

既に修正パッチを pull-request して、とりこまれているので、2.3.6 以降では治っていることになると思うんですが、取り急ぎ治したい人は以下のファイルを修正してください。

  • lib/Cake/Network/Email/CakeEmail.php の 1257 行目付近

修正前

        foreach ($lines as $line) {
            if (empty($line)) {
                $formatted[] = '';
                continue;
             } 
             if (!preg_match('/\<[a-z]/i', $line)) {

修正後

        foreach ($lines as $line) {
            if (empty($line)) {
                $formatted[] = '';
                continue;
            }
            if (strlen($line) < $wrapLength) {
                $formatted[] = $line;
                continue;
            } 
            if (!preg_match('/<[a-z]+.*>/i', $line)) {

修正ポイントは・・・

  • ISO-2022-JPの「受」のような特定の文字には「
  • このメソッドは第2引数の $wrapLength より長い場合に、その行に対してwrap処理をするためのものだから、$wrapLengthより短いならその行は処理しなくていいはず
  • そもそも「<」にエスケープいらなくね?

そもそも、wordwrap関数をかけてみたり、文字列を $line[$i] というように何バイト目?いうやり方でとってきたりと、マルチバイトで大丈夫か?という処理が行われているので、基本的にメールで送信する1行は 998 バイト以上にしないようにしといたほうがいいです。(998バイト以上になると、いろいろとヤバイ処理を通るので...)

今回はスルーした「その行にタグらしきものが入った場合」についても、おいおい処理内容をチェックして、マルチバイトでも大丈夫にしていこうかなと思っていたり、思ってなかったり...

受け身ではなく手を動かすイベントの楽しさ

もう10月ですねぇ。いよいよ開催が再来週と迫ってきた PHPMatsuri 2011の リレーブログです。

昨日の @tanakahisateru さんの PHPMatsuri 2010 からの1年を振り返って からバトンをうけて書きます。

このリレーブログ、今まで書かれている内容がかなり熱い内容なので、ぜひご一読を!

PHPMatsuriでできること

PHPMatsuriはセミナーや勉強会と違って参加者が手を動かすことを基本としたイベントです。セミナーや勉強会で自分の知らなかった情報を得るのも楽しいのですが、自分でそれを身につけるにはやはり自分で手を動かすことが一番だと思います。(PHPMatsuriではセミナー形式のセッションも並行で行われますが、それを聞くのも良し、聞かずにもくもくとコードを書き続けるもよし、それは参加するあなたの自由です)

また、普段の仕事では使っていないフレームワークやライブラリを使っていろいろ試すということをとことんできる場だと思います。ここ数年symfomy 1.XやCakePHP 1.Xを使って仕事をしてきた人(自分もそうですが)にとって、Symfony 2やSilex、CakePHP 2.XやLithiumといったこれから主力となりそうなフレームワークでいろいろ試す絶好の機会です。

そして、PHPMatsuriではこれらのフレームワークの開発者が来日→参加するので、ちょっとした疑問でもばんばん聞けてしまうというまたとないチャンスとなります。日本にいながらにしてそれぞれのフレームワークの哲学を開発者本人から聞けてしまうというのは本当にすばらしいことだと思います。

昨年のPHPMatsuri 2010では結構夜遅くまで開発者の方々がメインの部屋に残られていたので、ちょっと勇気をだせばいくらでもお話が聞けると思いますよ。

PHPMatsuriの雰囲気

自分は昨年のPHPMatsuriからの参加で、しかも午前中に別の用事があったため、午後からの参加となったのですが、会場に着いたときになんとも言えない雰囲気にびっくりした覚えがあります。全員がノートパソコンを開いて周りと時には会話をしながらそれぞれがコードを書いている姿は今でも忘れられません。

その中に一度飛び込んでしまえば好きなだけコードを書いていられるというか、それぞれ別のことをしてるはずなのに独特の一体感があってコードを書く人にはたまらない雰囲気だと思います。

結局昨年は部屋にはもどらずずっとメインとなった会場で朝までコードを書いていたのですが、もっと時間があればなぁと思うくらいの充実感でした。

関西で行われる意義

個人的には今回のイベントでうれしいと思うところ。関西出身者としては関西でのイベントが少しでもふえてほしいなぁと思っていて、こういうイベントが関西で行われるってのは本当にうれしい。

PHPMatsuriのように超大物をゲストに呼んでとかになるとスタッフの皆さんが大変ご苦労されていると思うのですが、みんなが集まって一晩中コードを書こうぜ!ということなら場所さえあればできちゃうわけで、是非ともいろんなところで開催されてほしいですね。

来年はまた違う場所で行われるといいですよね。

手を動かしたら発表しよう

PHPMatsuriのいいところは、手を動かした結果をみんなの前で発表する場があるってこと。自分が作ったモノなんてたいしたことないなんて思わずに、ひとまず発表してみるってのがいいと思います。自分が普段当たり前だと思っていることが意外と周りの人からすると当たり前でないことが多いわけで、周りの人も何より自分自身でなにか発見するモノがあると思います。

まずは参加してみよう

だらだらと書きましたが、こんな楽しそうなイベント、チケットを購入すればいつでも潜り込むことができますよ。興味を持った方は是非チケットを購入して参加してみてください。

次は @k1Low さんがいらっしゃる Fusic さんのブログにつなぎます。よろしくお願いします。

セットアップ手順(不親切版)

とりあえず試したいという人がいるかもしれないので、ある程度自力でいろいろできる人向けのセットアップ手順を書いときます。(もっと親切なものは後から書くかもしれない)

サーバを準備する

EC2やNiftyクラウド、さくらVPSとかでサーバを準備してください。注意事項としてはPHPバージョンは5.2以上じゃないといけないです。

あと、一つ前のエントリで書いたようにメールが外部に送信できるようにしておいてください。

追記
ローカル環境にセットアップして、Firefox+Firemobilesimulatorとかで動作を試してみるってのがいいと思います。

ソースをgithubからとってくる

適当なディレクトリにソースをとってきてください。(例で使っているディレクトリはあくまで例です)

  cd /home/www
  git clone https://github.com/kunit/yammer.git
  cd yammer
  git submodule init
  git submodule update

YammerからOAuthのConsumer Key/Secretを取得して設定する

YammerのAPIをたたくために以下の手順でアプリケーションの登録を行って、Consumer Key/Secret を取得してください。

  • ガラケーでアクセスしたいネットワークのアカウントでYammerにログインする(※注意1)
  • http://developer.yammer.com/api/ にアクセスする
  • その画面の右上の Register Application のリンクをクリック
  • アプリケーションの情報を入力する。Application名は「Mobile Yammer for xxx」の形式にしていると他のものとかぶらないでいいと思う。(※注意2)
  • 入力してsubmitすると Consumer Key/Secret が発行される

(※注意1) YammerのOAuthの権限はネットワーク毎に発行されます。そのためログインしないとアプリケーションの登録作業ができないです。
(※注意2) このアプリケーション登録情報は今のところ後から変更できないっぽいので適当につけると後で泣きをみます

上記の手順で登録した内容を設定ファイルを作成して記述します。

  cp app/config/yammer.php.default app/config/yammer.php

yammer.php で設定するのは以下の4つです。

Yammer.oauth_mail_from
権限設定メールを送信するときのFrom
Yammer.oauth_mail_subject
権限設定メールを送信するときのSubject
Yammer.oauth_key
取得したConsumer Key
Yammer.oauth_secret
取得したConsumer Secret

CakePHPのセキュリティーの基本設定をする

core.phpをコピーしてつくってください。

 cp app/config/core.php.default app/config/core.php

core.phpの以下の2つの値を変更してください。(これはCakePHPの通常のセットアップでやることと同じなので、なんのこっちゃと思った場合は適当にぐぐってください。すみません)

  • Security.salt
  • Security.cipherSeed

テーブルを作成する

以下のコマンドを実行してテーブルを作成してください。実行するとy/nで答えるものが2つ出ますが、それらはEnterを押してデフォルトの答えのままで大丈夫です。

  cake/console/cake schema create

書き込み権限の付与

app/tmp 以下はWebサーバから書き込みができるように権限を変更してください。

  chmod -R a+w app/tmp

Webの公開設定

app/webroot をDocument RootとなるようにWebサーバの設定をしてください。また、.htaccessで設定が上書きできるようにしてください(このあたりはCakePHPの設定と同じです)

ここまでやれば(たぶん)つかえるはず。

...と書いてみたんですが予想通りとてつもなく不親切だなぁ。ファイル展開したらすぐ使えますとかになればいいんだろうけど、いくつかは設定してもらわないといかんし。これでどれくらいの人ができるかってのを様子を見ながらセットアップ手順の簡略化は考えます。