За последние 24 часа нас посетили 17842 программиста и 1719 роботов. Сейчас ищут 856 программистов ...

Dependency Injection как у Phalcon (но на php :) )

Тема в разделе "PHP для новичков", создана пользователем LukiDuki1980, 5 июн 2015.

  1. LukiDuki1980

    LukiDuki1980 Новичок

    С нами с:
    19 апр 2015
    Сообщения:
    10
    Симпатии:
    0
    Встречал кто-нибудь реализацию DI (особенно конфигурации) как у Phalcon только на php?
    В общем суть в том, что там минимум магии и то что чаще нужно:
    С конструктором:
    http://docs.phalconphp.ru/ru/latest/reference/di.html#constructor-injection
    С геттерами и сеттерами:
    http://docs.phalconphp.ru/ru/latest/reference/di.html#setter-injection

    PS Конечно, не сложно самому написать, я просто исключаю уже (возможно) существующий велосипед, который сам не могу все найти (если таков есть).
     
  2. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
  3. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
  4. LukiDuki1980

    LukiDuki1980 Новичок

    С нами с:
    19 апр 2015
    Сообщения:
    10
    Симпатии:
    0
    Все не то, в этих DI (типа Pimple или особенно в Yii2) куча магии, избыточная попытка сделать все за тебя или псевдокодом, когда нужно в действительности описать просто список действий (мол вызвать это с этими аргументами, вызвать то с этим)). В симфонии же кажется все что нужно, но как блин глянешь сколько там пусто-кода, глаза на лоб лезут, представляя, что нужно будет туда лесть, если поддерживать (совершенно бестолковый монстр созданный видимо для тренинг-продаж, я его не понимаю, уж извините).
     
  5. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    фалкон - это диагноз =)
     
  6. LukiDuki1980

    LukiDuki1980 Новичок

    С нами с:
    19 апр 2015
    Сообщения:
    10
    Симпатии:
    0
    Так никто его не выбирает, как раз ищу настоящую реализацию DI (возможно на подобие java, с минимум магии), а не такую где DI умудряется хранить глобальные переменные, или где в реализации нужно 2 класса, а там их штук 15 (симфони).
     
  7. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    у симфонической реализации есть плюсы, во первых конфигурировать можно через yaml (используя симфонические компоненты Yaml и Config), во вторых, контейнер можно кешировать, в результате генерируется один пхп файл и приложение работает только с ним. т.е. в рабочем приложении все эти 350кб кода вообще не используются :) а только в момент генерации кеша.
     
  8. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    LukiDuki1980 - вы же не лезете во внутренности фалкона? Вот во внутренности других DI контейнеров не лезьте. Оценивайте по интерфейсам, скорости и т.п. DI симфони просто дает больше возможностей.. ну и как результат - посложнее. pimple к слову тоже от автора симфони - попроще. Можете еще погуглить php simple di container.
     
  9. LukiDuki1980

    LukiDuki1980 Новичок

    С нами с:
    19 апр 2015
    Сообщения:
    10
    Симпатии:
    0
    Хорошо, когда вы не профессиональный разработчик и можете такое говорить. Я вам завидую, у меня так не получается (предлагаю эту тему даже за-дискутировать и обсудить, когда действительно нужно лесть внутрь и почему нужно туда вообще лесть).

    Да и что вы к фалкону привязались. Я не сторонник его совсем. Мне просто была нужна DI c конфигом, которая построена как командная система, то есть не делает чудесную магию по определенному образцу, а как бы конфигом прямо говорит - сделай это(вызови этот метод с этими параметрами, прикрути сюда этот компонент-зависимость и т.д). Ну еще нужно, чтобы DI была просто прослойкой и можно прикрутить ко всему говнокоду который найдешь, то есть, чтоб DI не навязывала подход, как скажем в Yii2 с геттерами и сеттерами (или для решения зависимостей вызывала внутри себя Instance::ensure).

    Из всех предложенных и изученный мной за этот время, норм оказалась симфони. Но я уже написал свою с блэкджеком и... Ибо умудриться такое решение упихать десятком классов, это реально талант.

    PS мне кажется, когда требуется писать на симфони, можно смело уходить на java или любой другой язык с поддержкой полноценного веб-приложения (то есть запущенного и инициализированного фонового приложения, а не подход цикличного запуска скрипта).
     
  10. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
  11. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    А что тут обсуждать? Чужие библиотеки менять нельзя. Если вы профессионал, а не просто просто "профессиональный разработчик ака получающий за работу деньги", то должны это понимать.
    Когда кажется... сами знаете что нужно делать ;)
     
  12. LukiDuki1980

    LukiDuki1980 Новичок

    С нами с:
    19 апр 2015
    Сообщения:
    10
    Симпатии:
    0
    Вот поэтому отличается профессиональный разработчик от кустарного, в код лезут не только чтобы менять, еще за тем чтобы определить функционал, банально бывает документации не достаточно и нужно в живую понять поведение в тех или иных случаях или узнать есть там эта фича или нет, или понять почему библиотека ведет себя так, а не так. Или же актуальный случай простой - либа крашится и нужно пофиксить (да и мы вышлем патч разработчику :) ). Еще случай, когда либа является звеном нашего продукта и мы расширяем его (то есть нам нужно изучить что-то в ней чтобы расширить её, в программирование это можно), или же мы просто хотим глянуть как реализован какой-то микро функционал, который мы бы хотели видить у себя. Ну и последнее, наверно, актуально, если либа опенсорс, грех ее не адаптировать под себя, внося туда изменения, продолжая её сопровождать своей командой под свои задачи, в этом и мощь опенсорса (вы же не будете вставлять кривую балку, вы её подгоните под свое строение).

    Но я согласен, есть случае когда в библиотеку лесть не стоит (исключая ограничения лицензии), это случаи, когда у вас продукт с какой-либо гарантией и техподдержкой. В php такого я не видел, хотя не отрицаю что есть. Да и в этом случае иногда приходится смотреть сорцы, чтобы правильно впихнуть плагин)

    Добавлено спустя 1 минуту 10 секунд:
    Пока вы креститесь, другие получают деньги в мире полноценных веб-приложений :)

    Добавлено спустя 3 минуты 15 секунд:
    оттуда и начинал, не брезгуя подсказками гугла. Просто хотел спросить у сообщества, вдруг кто видел, знает...
     
  13. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Хотел написать умный ответ, потом увидел первую тему автора и решил, что я еще недостаточно профессионален для каких-то споров с ним.
     
  14. LukiDuki1980

    LukiDuki1980 Новичок

    С нами с:
    19 апр 2015
    Сообщения:
    10
    Симпатии:
    0
    Ну правильно) Когда больше не можешь "в диалог", сразу надо переключиться на личности и убежать от разговора, прикрываясь оффтопом, это так профессионально :)

    ОФФТОП: А что с первой темой не так то? Я надеюсь ты понял, что там вопрос проектирования, или же тебе твоим опытным глазом почудилось, что я спрашиваю про диалект языка :D ?
    Не вижу ничего забавного в том, когда человек уточняет, какой стиль или подход принят в том или ином языке, особенно когда нужно удержаться в рамках парадигмы PHP фреймворков (которые, я вижу, сомнительно иногда решают задачи).
     
  15. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Автору для справки:
    MiksIr не может не начать срач. В ходе срача не может не перейти на личности. В ходе перехода на личности не может не начать упоминать что он Д'Артаньян. Если это не принимается всерьез, он начинает буквально навязывать эту идею, попутно объясняя собеседнику, почему он недостоин ничего в этой жизни и как он ничтожен по сравнению с Великим. Данные факты, как и то, что пациент - тролль, были признаны им самим, цитирую "Я на форум изредка захожу пар спустить", автор цитаты - MiksIr .

    Спасибо за внимание.
     
  16. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Для справки. Суслик считает себя очень умным и самое главное - справедливым. Даже решил модератором стать. Правда, мало кто считает так же. Но он, так же как и все - плохо слышит чужие мнения и мучительно сопротивляется быть неправым. В таких случаях начинает активно кидаться бородатыми картинками и демотиваторами. Правда, долго не выдерживает, срывается и начинает хныкать какой несправедливый мир.
    Спасибо за внимание.

    Добавлено спустя 7 минут 55 секунд:
    Я понял, что вам стоит хотя бы прочитать http://www.books.ru/books/shablony-korporativnykh-prilozhenii-728454/ вот эту книжку. Как минимум, что бы не говорить "ORM или ActiveRecord - не важно" (hint: AR - это реализация ORM). Ну и по архитектуре это откроет вам глаза. Хотя, может стоит начать с того, что такое инкапсуляция и где вообще должна находится бизнес-логика относительно данных.

    Соответственно обсуждать архитектуру DIC мне не интересно. Хотите - пообсуждайте с сурикатом.
     
  17. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Собственно, подтвердил каждое мое слово. Молодцом. ЧСВ, уязвленное самолюбие, синдром ложного консенсуса, попытка унижения собеседника, попытка игры на публику. Ты перестал быть оригинальным.

    Его Величество покинуло залу!

    Думаю, впредь будет понятно, что это за товарищ, и чего стоит с ним связываться. Просто игнорируй впредь этого троля.
     
  18. LukiDuki1980

    LukiDuki1980 Новичок

    С нами с:
    19 апр 2015
    Сообщения:
    10
    Симпатии:
    0
    Да, тут я ошибся, своих ошибок не стыжусь (но это ошибка не понимания, а просто опечатка моя грубая) Хотя да, это удачный корм для таких людей как ты :) кушай, а то мухи налетят, отберут)

    Ну потому, что ты ничего не понимаешь в этом :)
    К сожалению, я не виду беседу с местными клоунами (прочими социальными "ущербами", которые пытаются компенсировать свои расстройства негативным поведением). Я догадывался что ты такой, но вот люди тоже подтверждают.
     
  19. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    В отрыве от темы - еще можно было бы на это съехать. Но там вся тема... такая.
    С русским языком тоже проблемы, да ;)
    Вот по-этому и не буду. Не потому, то вы что-то не знаете, что-то не понимаете, в чем-то заблуждаетесь.
    А потому, что вы почти сразу начали гнуть пальцы. Аппелируя, что мол вы весь в белом, а остальные - говнокодеры тут. Ну вот я и пошел посмотреть уровень квалификации. В итоге, имеем у вас четко выраженный эффект Даннинга-Крюгера.
    Можете тут сколько угодно дальше соревноваться с сусликом в словоблудии, а книжечку почитайте. Может что-то получится из вас.
    Ты можешь сказать свое мнение, это нормально. Когда о тебе сказали свое менение - это ЧСВ и троль ;) Ну чо, как обычно, бревно в своем глазу не видно ;) Забавный.
     
  20. LukiDuki1980

    LukiDuki1980 Новичок

    С нами с:
    19 апр 2015
    Сообщения:
    10
    Симпатии:
    0
    Вот бомбануло у него))
     
  21. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    LukiDuki1980,зачем ты так? ты ж его совсем не знаешь)). Прям детский сад.
     
  22. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Phalcon нормальный фреймворк?
     
  23. engine.energy

    engine.energy Новичок

    С нами с:
    31 май 2015
    Сообщения:
    149
    Симпатии:
    0
    VLK, да нормальный но освоить на их вкус много времени нужно! К примеру я его освоил половина суть кода лишь за месяц!