LaradockでPhalconに入門する
TL;DR
Phalcon
触ってみたかったので、Laradock
で環境作ってWebアプリの雛形作ってみた
対象
- Laravelとか知ってるけどPhalconは触ったことないPHPer(私)
- サクッとPhalconお触りしてみたい人
準備
- macOS 10.14.5
- docker 18.09.2
ディレクトリ構成
以下のようになる想定です
/path/to
├── phalcon-sample
└── laradock
※ phalcon-sample
のところはプロジェクト名等で適宜読み替えてください
手順
Laradock
のworkspace
コンテナ経由でPhalcon
プロジェクトを作成します
Laradock導入
$ cd /path/to
$ git clone https://github.com/laradock/laradock.git
Cloning into 'laradock'...
...
Resolving deltas: 100% (4755/4755), done.
※ Laradock
について詳細は割愛するので、必要な方はこのへん見てください
.env作成
$ cd /path/to/laradock
$ cp env-example .env
$ vi .env
$ diff -u env-example .env
...
-WORKSPACE_INSTALL_PHALCON=false
+WORKSPACE_INSTALL_PHALCON=true
...
-PHP_FPM_INSTALL_PHALCON=false
+PHP_FPM_INSTALL_PHALCON=true
...
-MYSQL_VERSION=latest
+MYSQL_VERSION=5.7
.env
の変更は上記3箇所です
※ MYSQL_VERSION
については本題とあまり関係ないのでこのへん参考に「ふーん」ぐらいで大丈夫です
dockerコンテナ起動
workspace
コンテナのみ指定して起動します
$ docker-compose up -d workspace
Creating network "laradock_frontend" with driver "bridge"
Creating network "laradock_backend" with driver "bridge"
Creating network "laradock_default" with the default driver
Creating laradock_docker-in-docker_1 ... done
Creating laradock_workspace_1 ... done
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------
laradock_docker-in-docker_1 dockerd-entrypoint.sh Up 2375/tcp
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
phalcon/devtoolsのインストールとPhalconプロジェクト作成
起動したworkspace
コンテナ内でphalcon-devtoolsをインストールします
phalcon-devtools
はPhalcon
公式から提供されている便利スクリプト集らしいです
Laravel
で言うところのartisan
みたいなやつでしょうか?(よくわかってない)
公式の手順とはちょっと異なりますが、一度コンテナ内のグローバルにインストールしてプロジェクト作成します(※ 後でプロジェクト内でインストールし直します)
$ docker-compose exec --user=laradock workspace bash
# ここから コンテナ内での作業です
$ composer global require phalcon/devtools
Changed current directory to /home/laradock/.composer
Using version ^3.4 for phalcon/devtools
./composer.json has been updated
...
Writing lock file
Generating autoload files
$ php ~/.composer/vendor/bin/phalcon.php project phalcon-sample
Phalcon DevTools (3.4.0)
Success: Controller "index" was successfully created.
/var/www/phalcon-sample/app/controllers/IndexController.php
Success: Project 'phalcon-sample' was successfully created.
Please choose a password and username to use Database connection.Used default:'root' without password.
$ exit
exit
# ここまで コンテナ内での作業です
$ docker-compose down
Stopping laradock_workspace_1 ... done
Stopping laradock_docker-in-docker_1 ... done
Removing laradock_workspace_1 ... done
Removing laradock_docker-in-docker_1 ... done
Removing network laradock_frontend
Removing network laradock_backend
Removing network laradock_default
phalcon-devtools
でプロジェクト作成したら、コンテナは一度抜けて破棄します
ローカル動作確認
/path/to/phalcon-sample
ディレクトリがホスト側にも出来上がっているはずなので、Laradock
のマウント設定を少し変更します
$ vi .env
$ diff -u env-example .env
...
-APP_CODE_PATH_HOST=../
+APP_CODE_PATH_HOST=../phalcon-sample
...
-WORKSPACE_INSTALL_PHALCON=false
+WORKSPACE_INSTALL_PHALCON=true
...
-PHP_FPM_INSTALL_PHALCON=false
+PHP_FPM_INSTALL_PHALCON=true
...
-MYSQL_VERSION=latest
+MYSQL_VERSION=5.7
先ほどの3箇所に加え、APP_CODE_PATH_HOST
を変更しています
デフォルトでは/path/to
をコンテナにマウントしていたのに対し、/path/to/phalcon-sample
をマウントするようにしています
.env
を変更したら、今度はworkspace
以外にnginx
とmysql
も一緒に起動します
$ docker-compose up -d workspace nginx mysql
Creating network "laradock_frontend" with driver "bridge"
Creating network "laradock_backend" with driver "bridge"
Creating network "laradock_default" with the default driver
Creating laradock_mysql_1 ... done
Creating laradock_docker-in-docker_1 ... done
Creating laradock_workspace_1 ... done
Creating laradock_php-fpm_1 ... done
Creating laradock_nginx_1 ... done
無事に立ち上がったら、この時点でlocalhostで動作確認できると思います
phalcon-devtools
はこの後も使うと思うので、プロジェクト内に改めてインストールしておきます
$ docker-compose exec --user=laradock workspace bash
# ここから コンテナ内での作業です
$ composer require --dev phalcon/devtools
Using version ^3.4 for phalcon/devtools
./composer.json has been created
...
Writing lock file
Generating autoload files
$ exit
exit
最終的に中身はこんな感じになっていると思います
$ ll phalcon-sample/
total 72
drwxr-xr-x 8 user group 256 6 21 12:22 app/
drwxr-xr-x 2 user group 64 6 21 12:22 cache/
-rw-r--r-- 1 user group 66 6 21 12:33 composer.json
-rw-r--r-- 1 user group 26968 6 21 12:33 composer.lock
-rw-r--r-- 1 user group 123 6 21 12:22 index.html
drwxr-xr-x 9 user group 288 6 21 12:22 public/
drwxr-xr-x 12 user group 384 6 21 12:33 vendor/
まとめ
phalcon-devtools
周りでちょっとぐだつきましたが、とりあえず最終形はきれいな形に収まったと思います…
Author And Source
この問題について(LaradockでPhalconに入門する), 我々は、より多くの情報をここで見つけました https://qiita.com/halnique/items/c583507a7bf99a914bb2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .