У меня есть 3 проекта, которые очень похожи: 95% кода. Теперь, когда я должен сделать редактирование, я должен копировать это три раза, и это очень плохо!Laravel небольшие различия для разных сред
Поэтому мне нужно иметь только один проект и управлять небольшими различиями с чем-то вроде окружения. Но я не знаю, как это сделать.
Например, у меня есть контроллер с этой функцией
public function save()
{
$this->validate($this->request, [
'firstname' => 'string',
'lastname' => 'string',
'gender' => 'string',
'phone' => 'bail|size:10|required',
'email' => 'email',
'birthdate' => 'bail|date',
'referral_code' => 'bail|string',
'city' => 'bail|string',
'call_state' => 'bail|string',
'call_date' => 'bail|date',
'campaign' => 'bail|string',
'note' => 'bail|string',
'overwritten_by_lead' => 'bail|integer',
'change_state_counter' => 'bail|integer'
]);
$data = $this->request->all();
$customer = $this->repository->create($data);
return $this->response->item($customer, $this->transformer)->setStatusCode(201);
}
и разница с другим проектом является:
public function save()
{
$this->validate($this->request, [
'firstname' => 'string',
'lastname' => 'string',
'gender' => 'string',
'phone' => 'bail|size:10|required',
'email' => 'email',
'birthdate' => 'bail|date',
'referral_code' => 'bail|string',
'city' => 'bail|string'
]);
$data = $this->request->all();
$customer = $this->repository->create($data);
return $this->response->item($customer, $this->transformer)->setStatusCode(201);
}
Еще одно различие внутри сущностей, например:
protected $fillable = [
'firstname',
'lastname',
'phone',
'email',
'birthdate',
'gender',
'province',
'zip_code',
'address',
'city',
'campaign',
'overwritten_by_lead',
'change_state_counter',
'call_state',
'call_date',
'credit',
'referral_code'
];
И это еще один
protected $fillable = [
'firstname',
'lastname',
'phone',
'email',
'birthdate',
'gender',
'province',
'zip_code',
'address',
'city'
];
Внутри этих трех проектов есть очень мало различий, но мне нужно управлять ими.
Я не хочу, чтобы обойтись с многими Если потому, что среда может быть больше 3!
Каков наилучший способ переписать или управлять этими различиями в разных средах с разными файлами?
Например, у меня есть проект 1 внутри папки: CustomerController и CustomerEntity То же самое для другого проекта, внутри каждой папки среды Я помещаю файлы, которые отличаются, но как я могу перезаписать эти файлы?
Thanks
Что вы подразумеваете под окружающей средой? –
Если я прав, то это как 'разработка | постановка | производство ... '? –
Окружающая среда Imean - это другой проект, например siteForEngland, siteForItaly, siteForSpain. Я думаю, что это похоже на среды –