PHP
Silex

SE歴8年の無職がSilexでサイト構築に挑む

簡単にできるって書いてたからやってみました。

ComposerからSilexをダウンロード

書いてあるコードはこちら。

composer require silex/silex:~2.0 twig/twig

composerというのがイマイチまだ理解しきれてないんですけど、こうやって書いてあるからにはダウンロードしてくれるマンなんでしょう。

あと最初、silexとtwigって書いてあるのに1行しかねえぞ!!

とか意味不明なこと思っててすみませんでした。文盲。
並べて書けるんですね。
ただ問題は次。

どこに?

詰まりました。

ダウンロード……するのは、プロジェクトを置く場所?的なところですよね、多分。

どこに作るの?
デスクトップ?

というわけではないはずなので、空気を読んでプロジェクト用のディレクトリを作成します。

考えてみればこの程度のことをわざわざ書く必要もなかった。

実行。

こんなになりました。

$ cd sample2
$ ls
composer.json   composer.lock   vendor

$ ls vendor/
autoload.php    pimple      silex       twig
composer    psr     symfony

以降の手順でindexとかなんか色々作るんですが。

sample2に作るのか、vendorに作るのかがわかりません。

たぶんここ(sample2)だとは思うんですけど……書いてて悲しくなってきた……。

中身をつくる

index.php

公式ドキュメント通りで全く問題なしです。

公式ドキュメント is 何。

ああ、確かにここに書かれてるサンプルと同じですね。
なるほど。

viを最近ようやくおぼろげに覚えたのでサクッと作成しました。

  1. vi index.php
  2. [A](追加書き込み)
  3. コピペ。Command+vが問題なく使えて良かった
  4. [Esc](編集終了)
  5. [:x]から[Enter](上書き保存して終了)

こんな感じで。

PHP(5.4.0以上)のビルトインサーバーを起ち上げて、指定したホストにアクセスすれば「Hello, World!!」が表示されます。

なんて?

とりあえず、書いてあるコマンドを叩いてみます。
ルートディレクトリは自分でいいんだよね?
ってことでこんな感じで。

php -S localhost:8000 -t ./

起動は成功。
アクセスでエラー。

デバッグ

見てみるとindex.phpの2行目でエラーとのこと。
そんなんファイルパスしか書かれてないぞ。
つまりファイルパスがだめと。

該当部分はこんな感じ。

require_once __DIR__.'/../vendor/autoload.php';

えっと、現在のところから一個戻ってvendorにアクセスしてるから……。

sample2じゃなくてもう一つ深いところに作らないといけないんですね、これ。

じゃあ適当にwwwとかフォルダ作ってそこを指定してサーバーを立ち上げると……成功しました。
なるほどー。

twigでviewを作る

よくわかりませんが、layout.twigとindex.twigというものを作成するようです。

どこにだろう。

例によってぶちあたる疑問。

まあいいやとばかりに作成しました。
あとからmoveすることにします。

Twig表示のためにindex.phpを修正

次にindex.phpを修正するようです。
テキストの中に、ディレクトリを指定する場所があります。
なるほどここで指定するわけですか。
じゃあviewとか作ってそれに放り込めばいいのかな。

指定先はこんな感じに修正。

'twig.path' => '../view'

どこを置き換える?

あと、書いてあるphpって全部じゃないですよねたぶん。

適当に読み解いて、app->getが重複していたので『Routeがどうこう』ってコメント以下を全とっかえしました。

そして実行

スクリーンショット 2017-11-28 16.00.36.jpg

できましたー!!

課題

これローカルだけどGCPにアップロードするにはどうするんだろう?
とりあえずステップで進んでいきます。
次はユーザ認証。
参考資料はこれ。

PHPマイクロフレームワークのSilexでログイン処理をささっとつくる | | リーテラトバリタブログ