インストールしたSymfonyのバージョンが違うっ! – Symfony2入門 28ページ
前回の記事でクライアント証明のハードルもクリアしてデモアプリのインストールが完了。気分よく「php app/check.php」を実行すると・・・
「Could not open input file: app/check.php」 というエラーが出現!
check.phpというファイルが存在しない、だと!?
symfony_demo\appフォルダーを見てみると、確かに check.php なんて無い。他のフォルダーも全部見たけど、無かった。
うーん、インストール失敗したのかなぁ・・・と思いつつ30ページに進む。
「php app/console」を実行するも、またファイルが存在しないエラーが出現。
console っていうスクリプトは、bin フォルダーの中にあった。
console実行ファイルまでのパスがわかったので、「php bin/console」と実行すると・・・衝撃的な文字がっ!!
Symfony version 3.1.0 !!!
現行の最新バージョンじゃねえかっ!!
こちとら、2.7系でやりたいんだよ。なんて日だっ!!
とシャウトしながら、解決策を探ります。
試行錯誤(という名の泥沼)
なんとなくの勘だと、「symfony demo」ってコマンドだと最新のバージョンのものをインストールするようになってて古いバージョンは数字を指定しなきゃいけないんじゃないかなってこと。
で、公式ドキュメントでインストーラーあたりを調べたら書いてありましたよ。
特定のバージョンのSymfonyを使いたいなら、ちゃんと指定しなさいねって。
$ symfony new my_project_name 2.8
とかでイケるんだから、「symfony demo 2.7」もイケるんじゃね?
フォルダーの名前かぶりとかしたら面倒くさそうだから、さっきインストールした「symfony_demo」フォルダー名を「symfony_demo3.1.0」に変える。
満を持して「php symfony.phar demo 2.7」と打つ!
これはっ!!!
できてるっぽい??
フォルダー名が「2.7」。嫌な予感しかしない。
やっぱり!バージョンは3.1.0のままで、フォルダー名が変わっただけだった・・・。
ちくしょう!堂々巡りだっ!
デモのインストールはやっぱり「php symfony.phar demo」じゃなきゃダメっぽい。3.1バージョンでも2.7バージョンでもそう書いてある。
本筋と関係ないけどSymfony2のドキュメント、バージョンごとの参照がしやすくて読みやすいなー。
「symfony demo」でのバージョン指定が無理ということは、インストーラーのダウンロード時にバージョンを指定しなきゃってことか!?
・・・以降、泥沼化。
GitHubにアップされてるデモアプリケーションの「Upgrade the Demo Application to Symfony 3.1 javiereguiluz committed on 31 May」を境にフォルダ構造が変わってるので、そのひとつ前のバージョンをダウンロードして使う。
2.8になってるっぽいけど、「app/check.php」も「app/console」も存在してるしなんとかなるだろう。
下記のページを参考にして、git で過去のバージョンのデモアプリを取得。
※gitのインストールが必要。
「git clone https://github.com/symfony/symfony-demo.git」で最新リポジトリを取得する。
「git checkout 8d82d04b7298a1afb179846dbd8ab551fffd1a7b」で、バージョンを過去のものに戻す。
フォルダの中を見ると、「app/check.php」も「app/console」も存在する。
「php app/console」は反応なし。
「php app/check.php」はエラーを吐き出す始末。
うーん、泥沼深刻化。
解決しないので、3.1.0のデモアプリケーションで進めました。
・Symfony2.7のデモアプリがどーしても入らない。
・3章のアプリケーション作成では「php symfony.phar new hogehoge」から始まるので、そこからバージョンを合わせていけばよい。
という判断から、3.1.0のデモアプリケーションで行くことにしました。2章の残りの内容が3.1.0ではどこを指しているのかを確認しつつ進めようと思います。
んー、なんか解決策があったのかモヤモヤするけど、今は前に進むのみ!!
コメント
自分もこれ、困っていました。いろいろ調べてみて
旧バージョンのデモの動かし方が分かったのでコメしておきます。
#1
↓からv0.7.0のzipをダウンロードします。
https://github.com/symfony/symfony-demo/releases
(これがSymfony v2.7のデモみたいなので)
#2
↓からComposer v1.2.0の「composer.phar」をダウンロードします。
https://getcomposer.org/download/
#3
旧デモのzipを展開して、
その中にさっきダウンロードしてきたcomposer.pharを入れます。
#4
コマンドプロンプト(PHPにパスを通しておく)を起動して、
さっきのデモを展開したところへcdコマンドで移動して、
「php composer.phar install –no-interaction」を実行する。
いろいろダウンロードされてデモアプリが完全な形になる。
(けっこう時間がかかる)
#5
「php app/console server:run」で動作確認する。
以上です。
githubのsymfony-demoは本当にアプリの部分だけしかなくて、
symfony本体とか依存ライブラリとかは除かれているっぽいです。
なのでcomposerでプロジェクトとして構築する(?)必要があるみたいです。
(自分もこのあたりは勉強し始めたばかりで理解していないです)
とりあえず自分はこれで動かせました。
ダメだったらスイマセン。。。
yamadaさん、的確かつ具体的なコメントありがとうございます!
早速やってみたら、簡単にインストールまでできちゃいました。ビックリです。
↓ インストール手順を記事にしました。
http://juku90.com/post-1934/
>githubのsymfony-demoは本当にアプリの部分だけしかなくて、
>symfony本体とか依存ライブラリとかは除かれているっぽいです。
そうなんですねー。そのあたりも仕組みがわかってスッキリしました。
ホントにありがとうございましたー!
[…] .0を選んだのかは前回の記事に書いてます。) […]