Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (4) 1 [2] 3 4  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Обсуждения DI
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 21 день
Карма: 111




Servise - WAT Service

во вторых я считаю что в контейнере должно быть 2 состояния
1 когда сервисы конфигурируются
2 когда их уже нельзя изменить

притом на 1ом этапе мы можем менять классы
и вызов в идеале получается отложенным до момента 2

и уже после будет вызыван класс который был законфигурирован


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 15 дней


Цитата (bestxp @ 20.10.2015 - 09:18)
Servise - WAT Service

Уже подсказали, исправил на гитхабе. Сейчас здесь исправлю.

Цитата (bestxp @ 20.10.2015 - 09:18)
во вторых я считаю что в контейнере должно быть 2 состояния
1 когда сервисы конфигурируются
2 когда их уже нельзя изменить

притом на 1ом этапе мы можем менять классы
и вызов в идеале получается отложенным до момента 2

и уже после будет вызыван класс который был законфигурирован

Не понял логики, если чесно. Почему нельзя изменить?


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 21 день
Карма: 111




а зачем менять ?
ты сконфигурировал и все

запустил и дальше уже ну никак не должен меняться сервис

если у тебя возвращаеться по сервису app.security = класс \ABC\Security то он после запуска приложения уже не должен меняться, а вот во время конфигурации пожайлуста меняй

Если кто-то может менять конфигурацию во время исполнения и поменяв например \Some\Security то приложение вообще развалиться и станет уязвимым

например после запуска прилоежния у тебя есть событие например onkernelRequest
в котором у тебя инициализируется твоя система безопасности и проверяет какие-то данные и сохраняет в себе в памяти ( например какой-то временной токен у платежной системы )

далее какой-то модуль берет и подменяет твой security на другой и у него нет тех данных что он получил и ты пытаешься совершить оплату, но токена нет так как внимание кто-то подменил данные

это есть сравнить так

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

а вся твоя конфигурация по сути определена при сборке и покупке, и замена чего-то это уже другой разговор, так как пока ты едешь в машине ты ни двигатель ни аккумулятор менять не будешь, не сможешь да и еще опасно


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 6 дней
Карма: 40




А на мой вопрос будет ответ? Ну с подменой зависимости?


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 15 дней


Цитата (chee @ 20.10.2015 - 13:27)
А на мой вопрос будет ответ? Ну с подменой зависимости?

Ой, не заметил вопроса.
Цитата (chee @ 20.10.2015 - 07:19)
WAT? Клиенты могут удалять из контейнера объекты?
А почему нет? В PHP есть unset, unlink, free_result, close в конце концов. Чем сервис лучше? Если объект использован полностью, а скрипту еще пахать и пахать, можно не хранить его в памяти, а просто удалить.
Цитата (chee @ 20.10.2015 - 07:19)

Вопрос: Что будет если в определенном модуле системы, который уже работает с зависимостью MyClass из контейнера, я захочу ничего не меняя подменить зависимость на такую же по интерфейсу, но при этом ничего не меняя в самом модуле и что бы для всех остальных компонентов системы MyClass был прежним?
Ничего не понял. Что поменять ничего не меняя? Конкретнее можно пример. Я чето такой ситуации не могу себе представить.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 15 дней


bestxp
Вобщем то логично. Нужно сделать клонирование или прототипа. Я подумаю, спс за наводку.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 6 дней
Карма: 40




Цитата (twin @ 20.10.2015 - 17:45)
А почему нет? В PHP есть unset, unlink, free_result, close в конце концов. Чем сервис лучше? Если объект использован полностью, а скрипту еще пахать и пахать, можно не хранить его в памяти, а просто удалить.

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

Цитата (twin @ 20.10.2015 - 17:45)
Ничего не понял. Что поменять ничего не меняя? Конкретнее можно пример. Я чето такой ситуации не могу себе представить.

Вот тут есть пример кода, http://cheevauva.blogspot.ru/2015/02/blog-post_88.html с внедрением зависимостей. Смысл в том, что я описываю на каждый компонент его зависимости, для нескольких компонентов может быть одна общая зависимость, но при этом у меня существует возможность для конкретного компонента эту общую зависимость подменить на другую, при этом другие компоненты и их зависимости это не затронет.

В коде это так

$injections = array(
'Object1' => array(
'object2' => 'Object2',
),

'Object2' => array(
'object1' => 'Object1',
'object2' => 'Object2',
),

'Object3' => array(
'container' => 'DIContainer',
)
);



Я могу легко подменить зависимость object2 в Object2

$injections = array(
'Object1' => array(
'object2' => 'Object2',
),

'Object2' => array(
'object1' => 'Object1',
'object2' => 'Object3',
),

'Object3' => array(
'container' => 'DIContainer',
)
);


При этом в Object1 зависимость object2 все равно будет Object2, а не Object3.

Учитывая эти разъяснения жду ответа на вопрос выше.


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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 15 дней


А причем тут мой локатор? Он этого впринципе не может. Он может хранить только по одному объекту, потому он и не контейнер вовсе. Мне он нужен на данном этапе для сборки компонентов фреймворка. А про остальное я вот написал:
Цитата (twin @ 20.10.2015 - 03:53)
Вобщем то это санминимум, потом в библиотеке можно расширить возможности всякими плюшками и получится кондовый DIC smile.gif
Я хочу потом сделать отдельный компонент для этого. Пока достаточно.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1046
Пользователь №: 41686
На форуме: 1 год, 4 месяца
Карма: 13




Для тех, кто не вкурил объяснения по поводу DI Container предлагаю к просмотру вот это видео: http://www.youtube.com/watch?v=DcNtg4_i-2w

И вопрос к ТС, почему просто не использовать Pimple?




--------------------
Жду 5.11.2017
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 15 дней


Цитата (Ron @ 20.10.2015 - 17:18)
И вопрос к ТС, почему просто не использовать Pimple?

Потому что это просто. biggrin.gif

А серьёзно, хотелось бы ядро из коробки, без сторонних зависимостей. Я вообще не понял с ним тему. На многих ресурсах, которые его рекламят, он объявляется как new Pimple. А в исходнике и на офсайте как new Container. Они что то изменили? Кроме того, я не нашел там метода share. Может чего напутал, но сильно не рылся.

И еще, мне не очень нравится синтаксис ArrayAccess.


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1046
Пользователь №: 41686
На форуме: 1 год, 4 месяца
Карма: 13




Цитата (twin @ 20.10.2015 - 21:55)
Потому что это просто.

В смысле реализация слишком простая у pimple или просто в том плане, что хочется свое? )

Цитата (twin @ 20.10.2015 - 21:55)
А в исходнике и на офсайте как new Container. Они что то изменили?

Может быть. Я к сожалению не в курсе. Просто хотелось услышать мнение по поводу pimple.



--------------------
Жду 5.11.2017
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 6 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 15 дней


Цитата (Ron @ 20.10.2015 - 19:06)
В смысле реализация слишком простая у pimple или просто в том плане, что хочется свое? )

Да это шутка была smile.gif Мы не ищем простых путей, как говорится. На самом деле очень не хочется внешних зависимостей, кому надо, сами поставят. Фреймворк должен запускаться из коробки самостоятельно. Тем более что если они действительно изменили структуру - вот и прикинь что было бы сейчас. Все бы нахрен рухнуло. smile.gif


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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 21 день
Карма: 111




Pimple просто новая версия вышла =) и другие фичи теперь у него ) потому и по другому объявляеться


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 7 дней
Карма: 70




Надо тестить, пока непонятно что там как внедряется.

Какие задачи можно решить?

Допустим:
Есть класс Config, он работает с классом DB
Есть класс News, он тоже работает с классом DB

Задача №1:
Последовательно запускаются классы News и Config
Как внедрить DB2 в класс News, что бы класс Config продолжал работать с DB1
$новости = как то получить новости;
$настройки = как то получить настройки;


Задача №2:
В классе News используется класс Config
Новости нужно хранить на одном DB сервере, а конфиги на другом
Как внедрить DB2 в класс News, что бы в классе Config, который запускается внутри класса News остался DB1
$новости = как то получить новости с 2 сервера, используя настройки с 1 сервера;


Задача №3:
В классе News используется класс Config
Как сделать инъекцию, что бы класс News работал с DB2 и класс Config, который запускается внутри класса News, тоже работает с DB2
$новости = как то получить новости с 2 сервера, используя настройки такого же сервера;


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 7 дней
Карма: 70




Обнови, у первой задачи описание было не то =)


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (4) 1 [2] 3 4  Ответ в темуСоздание новой темыСоздание опроса