SymfonyデモアプリをWindowsコマンドプロンプトでphp app/check.php したけどそんなスクリプトが存在しない!

Symfony2




インストールしたSymfonyのバージョンが違うっ! – Symfony2入門 28ページ

前回の記事でクライアント証明のハードルもクリアしてデモアプリのインストールが完了。気分よく「php app/check.php」を実行すると・・・

 

 

Could not open input file: app/check.php

「Could not open input file: app/check.php」 というエラーが出現!

check.phpというファイルが存在しない、だと!?

 

 

 

symfony_demo\appフォルダーを見てみると、確かに check.php なんて無い

symfony_demo\appフォルダーを見てみると、確かに check.php なんて無い。他のフォルダーも全部見たけど、無かった。

 

うーん、インストール失敗したのかなぁ・・・と思いつつ30ページに進む。

 

 

 

「php app/console」を実行するも、またファイルが存在しないエラーが出現。

「php app/console」を実行するも、またファイルが存在しないエラーが出現。

 

 

 

console っていうスクリプトは、bin フォルダーの中にあった。

console っていうスクリプトは、bin フォルダーの中にあった。

 

 

 

console実行ファイルまでのパスがわかったので、「php bin/console」と実行すると・・・衝撃的な文字がっ!!

console実行ファイルまでのパスがわかったので、「php bin/console」と実行すると・・・衝撃的な文字がっ!!

 

Symfony version 3.1.0 !!!

 

現行の最新バージョンじゃねえかっ!!

 

こちとら、2.7系でやりたいんだよ。なんて日だっ!!

 

とシャウトしながら、解決策を探ります。

 

 

 

試行錯誤(という名の泥沼)

なんとなくの勘だと、「symfony demo」ってコマンドだと最新のバージョンのものをインストールするようになってて古いバージョンは数字を指定しなきゃいけないんじゃないかなってこと。

 

で、公式ドキュメントでインストーラーあたりを調べたら書いてありましたよ。

https://symfony.com/doc/current/book/installation.html#basing-your-project-on-a-specific-symfony-version

特定のバージョンのSymfonyを使いたいなら、ちゃんと指定しなさいねって。

 

$ symfony new my_project_name 2.8

とかでイケるんだから、「symfony demo 2.7」もイケるんじゃね?

 

 

 

symfony_demo3.1.0

フォルダーの名前かぶりとかしたら面倒くさそうだから、さっきインストールした「symfony_demo」フォルダー名を「symfony_demo3.1.0」に変える。

 

 

 

満を持して「php symfony.phar demo 2.7」と打つ!

満を持して「php symfony.phar demo 2.7」と打つ!

 

 

8

これはっ!!!

できてるっぽい??

 

 

フォルダー名が「2.7」

フォルダー名が「2.7」。嫌な予感しかしない。

 

 

10

やっぱり!バージョンは3.1.0のままで、フォルダー名が変わっただけだった・・・。

ちくしょう!堂々巡りだっ!

 

デモのインストールはやっぱり「php symfony.phar demo」じゃなきゃダメっぽい。3.1バージョンでも2.7バージョンでもそう書いてある。

https://symfony.com/doc/current/book/installation.html#installing-the-symfony-demo-application

 

本筋と関係ないけどSymfony2のドキュメント、バージョンごとの参照がしやすくて読みやすいなー。

 

「symfony demo」でのバージョン指定が無理ということは、インストーラーのダウンロード時にバージョンを指定しなきゃってことか!?

 

・・・以降、泥沼化。

 

GitHubにアップされてるデモアプリケーションの「Upgrade the Demo Application to Symfony 3.1 javiereguiluz committed on 31 May」を境にフォルダ構造が変わってるので、そのひとつ前のバージョンをダウンロードして使う。

 

2.8になってるっぽいけど、「app/check.php」も「app/console」も存在してるしなんとかなるだろう。

https://github.com/symfony/symfony-demo/tree/8d82d04b7298a1afb179846dbd8ab551fffd1a7b

 

下記のページを参考にして、git で過去のバージョンのデモアプリを取得。

http://labs.torques.jp/2013/04/03/3200/

※gitのインストールが必要。

 

git clone https://github.com/symfony/symfony-demo.git

「git clone https://github.com/symfony/symfony-demo.git」で最新リポジトリを取得する。

 

 

 

git checkout 8d82d04b7298a1afb179846dbd8ab551fffd1a7b

「git checkout 8d82d04b7298a1afb179846dbd8ab551fffd1a7b」で、バージョンを過去のものに戻す。

 

 

 

「app/check.php」も「app/console」も存在する。

フォルダの中を見ると、「app/check.php」も「app/console」も存在する。

 

 

 

「php app/check.php」はエラーを吐き出す

「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ではどこを指しているのかを確認しつつ進めようと思います。

 

 

んー、なんか解決策があったのかモヤモヤするけど、今は前に進むのみ!!




3 件のコメント

  • 自分もこれ、困っていました。いろいろ調べてみて
    旧バージョンのデモの動かし方が分かったのでコメしておきます。

    #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本体とか依存ライブラリとかは除かれているっぽいです。

      そうなんですねー。そのあたりも仕組みがわかってスッキリしました。

      ホントにありがとうございましたー!

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です