Symfony3の場合は、deployerのrecipeにsymfony3.phpがあるので問題ない。
Symfony Flexでも基本的にSymfony3のrecipeベースで問題ない。
しかし、自分でいくつか設定を変更する必要がある。
deploy.phpを書いてみた
Symfony4用にdeploy.phpを書いてみた。
deploy.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
<?php
namespace Deployer;
require 'recipe/symfony3.php';
// Project name
set('application', 'sf4-todo');
// Project repository
set('repository', '[email protected]:polidog/sf4-todo.git');
// [Optional] Allocate tty for git clone. Default value is false.
set('git_tty', true);
// Shared files/dirs between deploys
set('shared_files', []);
set('assets', ['public/pub', 'public/images', 'public/js']);
// Hosts
host('your server')
->stage('dev')
->user("deploy")
->set('symfony_env', 'prod')
->set('composer_options', 'install --verbose --prefer-dist --optimize-autoloader --no-progress --no-interaction --no-scripts')
->set('deploy_path', '/var/www/sf4-todo');
// Tasks
task('build', function () {
run('cd {{release_path}} && build');
});
task('deploy:assets:install', function () {
run('{{bin/php}} {{bin/console}} assets:install {{console_options}} {{release_path}}/public');
})->desc('Install bundle assets');
// [Optional] if deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');
// Migrate database before symlink new release.
before('deploy:symlink', 'database:migrate');
|
基本的にはSymfony3のレシピを使用すれば良いけど、2点ほど変更する箇所が必要。
- app/config/parameters.ymlがなくなった
- assets:installの設定の変更
app/config/parameters.ymlがなくなった
symfony.phpのレシピを見ればわかるがshared_filesでapp/config/parameters.ymlが設定されている。
symfony4では必要ないため以下のように書く。
1
|
set('shared_files', []);
|
assets:installの設定の変更
公開ディレクトリがweb
からpublic
に変更になったので設定を変更する。
設定を変更するのは2箇所。
- assets:installじのディレクトリ指定
- assetsのディレクトリの変更
assets:installじのディレクトリ指定
1
2
3
|
task('deploy:assets:install', function () {
run('{{bin/php}} {{bin/console}} assets:install {{console_options}} {{release_path}}/public');
})->desc('Install bundle assets');
|
assetsのディレクトリの変更
1
|
set('assets', ['public/css', 'public/images', 'public/js']);
|
最後に
この記事書いてから気づいたんだけど、Symfony flex supportのPull Requestが出ているので早くマージされることを祈る。
Symfony flex support #1440