teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

えでd

2018/11/02 19:12

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -134,4 +134,14 @@
134
134
 
135
135
  つまり、--env=localか--env=developを付与してphp artisan ide-helper:generateを実行しないとそんなクラスないってことでエラーがでます。
136
136
 
137
- これを回避する良い方法は何かないでしょうか?
137
+ これを回避する良い方法は何かないでしょうか?
138
+
139
+ composer.jsonのpost-update-cmdで冒頭のConsoleを読み込んでいます。
140
+ ```
141
+ "post-update-cmd": [
142
+ "php artisan post:cmd update",
143
+ "php artisan optimize"
144
+ ]
145
+ ```
146
+
147
+ jsonの中でenvを取得できればいいのですが、、、

1

ded

2018/11/02 19:12

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -82,8 +82,9 @@
82
82
  ```
83
83
 
84
84
  ide-helperはrequire-devに設定していて、本番環境では読み込まないようにしているので
85
- composer installやupdate実行時に、--env=***で実行しないと以下のエラーがでてしまいます。。。
85
+ composer installやupdate実行時に、--env=***で実行しないと以下のエラーがでてしまいます。
86
86
 
87
+
87
88
  ```
88
89
  > php artisan ide-helper:generate
89
90
  Exception: No application encryption key has been specified.
@@ -94,4 +95,43 @@
94
95
  Skipping \Illuminate\Support\Facades\Crypt.
95
96
  Exception: Database [user_server] not configured.
96
97
  Skipping \Illuminate\Support\Facades\Schema.
97
- ```
98
+ ```
99
+
100
+
101
+
102
+ AppServiceProviderでenvがlocalとdevelopのみ、require-devを読み込むようにしています。
103
+
104
+ ```
105
+ /*
106
+ |--------------------------------------------------------------------------
107
+ | 開発環境と検証環境のみ必要パッケージ等を読み込む。composer.jsonのrequire-devに依存する。
108
+ | require-devで導入するパッケージ等はconfig/xxx/app.phpへ追記して読み込む。
109
+ |--------------------------------------------------------------------------
110
+ */
111
+ if (isRequireDev()) {
112
+ $providers = config(\App::environment() . '.app.providers', []);
113
+ foreach ($providers as $index => $provider) {
114
+ if (class_exists($provider)) {
115
+ $this->app->register($provider);
116
+ }
117
+ }
118
+
119
+ $aliases = config('develop.app.aliases', []);
120
+ foreach ($aliases as $alias => $facade) {
121
+ if (class_exists($facade)) {
122
+ $this->app->alias($alias, $facade );
123
+ }
124
+ }
125
+ }
126
+ ```
127
+
128
+ ```
129
+ function isRequireDev()
130
+ {
131
+ return in_array(\App::environment(), ['local', 'develop']);
132
+ }
133
+ ```
134
+
135
+ つまり、--env=localか--env=developを付与してphp artisan ide-helper:generateを実行しないとそんなクラスないってことでエラーがでます。
136
+
137
+ これを回避する良い方法は何かないでしょうか?