@choupa
Архитектор (обычный, который строит)

Как обойтись без trait в PHP 5.3?

На 5.5 есть конструкция
include 'contract.php';

class Calculation	{
	use Contract;
 ...

где в файл contract.php вынесена громоздкая функция с большим количеством статичного текста (текста договора), который разбавляется небольшими вставками цены, реквизитов, сроков и проч.
trait Contract{ 
	public function create_contract()	{
...


Всё это прекрасно работало на 5.5, но возникла необходимость всё это запустить на 5.3.

Можно ли как-то вынести функцию create_contract в отдельный файл, т.к. не хочется всё это громоздить всё в один файл с классом Calculation? Тем более это я для вопроса упростил картину, на самом деле у меня создаётся таким образом не только договор, а целая пачка документов, для каждого из которых есть свой trait в своём файле.
  • Вопрос задан
  • 386 просмотров
Решения вопроса 2
Lillipup
@Lillipup
Allons-y, Алонсо!
Вынесите текст в отдельный текстовый файл, так будет проще.
Если что то поменяется в "договоре", Вам же придется это править в коде.
Ответ написан
@Zmey14
Не изобретайте велосипед, мы уже 6 лет с этим работаем.
Вынесите текст договора (пачки документов) в шаблон ТурбоКонтракт, разметтье его как вам угодно, реквизитами вариативностью, дайте доступ к редактированию шаблона вашим юристам, и используйте API для заполнения и формирования готового документа.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@sidni
Php Developer
вместо трейтов можно использовать магические методы.
Сделать в классе метод attach который будет принимать обьект и реализовать метод __call в котором проверять есть ли данный метод в присоединенном объекте если есть то вызвать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы