2013-06-15 1 views
2

Как добавить к модели Eloquent без изменения ее исходного кода? Под этим я имею в виду, скажем, у меня есть модель User, и я хочу добавить отношение has_many к ProfilePost, но я не хочу изменять модель User. Я хотел бы сделать это, потому что позже сторонние разработчики могут также добавить свои отношения к моей модели User без изменения исходного кода для моей модели User. Каково приемлемое решение для этого? Я смотрел на отношения onetomany, но мне все еще нужно добавить предложение belongs_to в модели User.Как сделать расширяемые яркие модели?

Что является принятым решением для этого?

ответ

1

- это разработчик решений, создающий новую модель пользователя, расширенную модель пользователя.

Ваша модель Пользователь

<?php namespace \App\Models; 

use Eloquent; 

class User extends Eloquent {} 

Модель третьего разработчиков сторонних пользователей

<?php namespace \custom_lib\Models; 

use \App\Models\User as BaseUser; 

class User extends BaseUser {} 

теперь \ custom_lib \ Models \ User, разработчики 3-й участник может добавить, что отношения его Lib/плагин.

+0

У этой проблемы все еще есть проблема, когда разработчики расширяют модель пользователя, но уже написанный код будет использовать старый. Я смотрел на контейнер IOC для этого, но он не чувствует себя достаточно расширяемым. Есть идеи? – james123