Создать посредник для модели

StalkerClasses

Новичок
Подскажите пожалуйста пример в произвольную модель Laravel добавить класс-посредник, в котором будет несколько функций и свойств.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
"пример в произвольную модель", я, пожалуй это запишу в мемориз.

PS: А теперь русским по белому, что именно ты делаешь?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
в этом топике прекрасно все - начиная с ощущения когнитивного диссонанса от фразы на мунспике, затем, загуглив, от понимания, что "Шоколад ни в чем не виноват" © и потом от остального на эту тему

@c0dex можно еще больше поржать с того, что ключ к пониманию этого мунспика, внезапно - документация laravel в православном переводе.
"Класс-посредник" - есть у них такое понятие, сюрприз-сюрприз https://laravel.su/docs/5.4/middleware

после этого "произвольная модель" понимается буквально по https://laravel.com/docs/8.x/eloquent#defining-models - автосгенерированный класс AR, создается командой, как ее ... php artisan make:model Flight - ну, это из yii

Еще у них есть "Ленивая активная загрузка", "Полиморфические отношения". Я @#$ боюсь детей разбудить, читая это.
Связывание моделей. Вставка связанных моделей (ой, не хочу гуглить)
"Запрос мягко удалённых моделей" ... интересно, есть ли жестко удаленные - после связывания? 😁
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
"Класс-посредник" - есть у них такое понятие, сюрприз-сюрприз https://laravel.su/docs/5.4/middleware

Еще у них есть "Ленивая активная загрузка", "Полиморфические отношения". Я @#$ боюсь детей разбудить, читая это.
Связывание моделей. Вставка связанных моделей (ой, не хочу гуглить)
OMFG. Читатели и преобразователи, находясь в полиморфических отношениях, лениво, но активно наблюдают за вставкой локальных заготовок в связанных моделей.

Сука.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
OMFG. Читатели и преобразователи, находясь в полиморфических отношениях, лениво, но активно наблюдают за вставкой локальных заготовок в связанных моделей.

Сука.
Сюжет для порно
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ладно, автор куда-то пропал, переезжаем)
 

StalkerClasses

Новичок
"пример в произвольную модель", я, пожалуй это запишу в мемориз.

PS: А теперь русским по белому, что именно ты делаешь?
Автор вернулся.
У меня есть модель PHP-класс.
Мне нужно для него сделать класс-посредник который бы использовался в этой модели. Т.е. использовалось бы несколько функций и несколько свойсвт.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Что за класс-посредник? Middleware? Или тебе нужно частичное заимствование методов одной модели в другой?

И вообще лучше бы описал что делаешь, то есть задачу.
 

Yoskaldyr

"Спамер"
Партнер клуба
немного оффтопа. Данный тред типичный пример TDD - Tutorial Driven Development. С налетом специфики православных переводов (а бывают переводы и на другие языки, и когда носители этих языков переводят назад на английский, получается ещё больший адок. Тут в клубе все любят рассуждать о высоких материях и всегда говорят что пофиг какой треш написан в доке или в официальных примерах использования - пиши сам нормально и будет хорошо. Вот у нас нормально, значит и у других тоже будет нормально. Только вот это так не работает. И вопрос данного тренда - просто типичнейший пример. Вот тупо это риал ворлд мазафака.
И этот пост ни как не в адрес ТС, он то как раз жертва текущей ситуации. А в адрес ситуации когда в доках и оффпримерах пишут ну очень много спорного, что 99% разработчиков воспринимается как единственный трувей :(
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
да, доки по фреймвокам - это в значительной части просто мусор, и нет, никто не говорит, что пофиг, мы уже лет 10 прямо пишем о проблемах с алгоритмами во всех фреймвоках,
если следовать примерам доки laravel или symfony - получится или плохо, или не очень хорошо
 

WMix

герр M:)ller
Партнер клуба
У меня есть модель PHP-класс.
начни с того что у тебя обьект.
Мне нужно для него сделать класс-посредник который бы использовался в этой модели.
можно сделать несколько различных по типу обьектов но имеющих один интерфейс
 

StalkerClasses

Новичок
начни с того что у тебя обьект.

можно сделать несколько различных по типу обьектов но имеющих один интерфейс
Чуть позже покажу мою скромную разработку - таблицы на основе аннотаций на базе Laravel Eq...
PHP:
<?php
namespace Domain\Model;

/**
* @Label:<Технологии>
*/

class Technology extends \Domain\Model\AbstractModelCrud
{
    use \\Domain\Model\Traits\Title;
    use \\Domain\Model\Traits\Sorting;
  
    /**
     * @Field:<FalImage>
     * @Field\Show:<1>
     * @Field\Label:<Изображение>
     */
    protected $pic;
  
    /**
     * @Field:<Flag>
     * @Field\Show:<1>
     * @Field\Label:<С новой строки?>
     */
    protected $flag_new_line;
  
    /**
    * Переопределение массива настроек таблицы
    * @return array
    */
    public static function postBuildConf(&$configuration = [])
    {
    }
}
?>
На выходе мы имеем табличку в которой я храню список используемых технологий:
1. Не нужны миграции
2. Поля создаются через кнопку "Анализатор БД"
3. После добавления вот такой простой модели появляется форма редактирования CRUD в админке.
4. Есть порядка 25 различных полей в т.ч. поддержка 4 видов связей (связи между таблицами определяются автоматически).

Но есть 1 недостаток.
Я не могу расширить этот класс. Вот в каком-то расширении мне допустим нужно добавить пару полей. И не знаю как это реализовать....
 

WMix

герр M:)ller
Партнер клуба
(Не нужны миграции) не знаю удобно ли это, миграция это не просто преобразование базы, это ожидаемое и документированное преобразование базы, после исполнения которого я уверен что на всех системах база одинаковая. (Поля создаются через кнопку "Анализатор БД") вспоминается http://propelorm.org/ там есть такое, единственное отличие что миграция все-таки создается хоть и в хмл форме и классы можно наследовать
что тут посоветуешь, если программа опирается только на структуру базы (phpMyAdmin), но при этом не хватает "типов для вида" или я не понял зачем ты хочешь унаследовать, то можно создать табличку где будет написано что в такой-то таблице, такое-то поле имеет такие-то дополнительные возможности и уже опираться на эту инфу
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
Для такого дизайна eloquent вообще не нужен, он будет больше мешать чем помогать.
 
Сверху