- Въпросче?
12345
WT форуми -> Дъра-бъра -> Въпросче?
Създайте нова тема Напишете отговор 
Автор Съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 145
Bonus: 289
Мнения: 1338
Мнение 06/06/2017 8:27 pm      Отговорете с цитат


Нали като получиш конфиг обект в конструктора:

PHP code:
new application\Container($config); 

го кешираш (както с останалите сингълтони), и от там нататък си ползваш все тази инстанция?

Цитат:
целта на контейнера е да създаде нов обект накрая

А тук какво имаш предвид? Накрая на конструктора ли?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1577
Мнение 06/06/2017 9:23 pm      Отговорете с цитат


Имам чувството че говорим на различен език Very Happy .

Виж последователността и може би ще разбереш.

Config->Loader->Container->__constructor(Config)->function make()->App->__constructor(Config)

Преди function make() няма кеш, в тази функция става всичко, което значи че няма как да кеширам при положение че конструктора се изпълнява първи. След тази функция, в конструкторите на другите класове например App, вече всичко е кеширано.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 145
Bonus: 289
Мнения: 1338
Мнение 06/06/2017 10:09 pm      Отговорете с цитат


teroristd написа:
Имам чувството че говорим на различен език Very Happy .

Защото говоря извън твоя контекст и нещата, които ми се струват очевидни, явно при теб няма как да се случат „просто така“.

Цитат:
Виж последователността и може би ще разбереш.

Config->Loader->Container->__constructor(Config)->function make()->App->__constructor(Config)

Преди function make() няма кеш, в тази функция става всичко, което значи че няма как да кеширам при положение че конструктора се изпълнява първи. След тази функция, в конструкторите на другите класове например App, вече всичко е кеширано.

Под „кеш“ разбирам масив (примерно), който стои в Container и държи всякакви обекти, които иначе биха били инстанции на singletonи.

Ето как си представям ситуацията аз:
При създаване на Container (c new), ти подаваш вече инстанцииран Config. (както правиш в index)
В конструктора на Container записваш подадения Config в кеша.
Всички по-нататъшни requestи към Container за Config ще върнат тази кеширана инстанция, и няма откъде да дойде второ копие на Config, защото Container вече ще си държи инстанция.

Това не би трябвало да има нищо общо с това какви Loaderи и Appове ползваш, защото се отнася единствено до Container.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1577
Мнение 08/06/2017 9:52 am      Отговорете с цитат


Благодаря @anonimen, в крайна сметка с малко смяна на логиката в Container се получи желаният резултат. Мисля че вече съм в крачка със SOLID или поне съм доста близо Smile .
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 342
Bonus: 682
Мнения: 2564
Мнение 08/06/2017 4:19 pm      Отговорете с цитат


teroristd написа:
Благодаря @anonimen, в крайна сметка с малко смяна на логиката в Container се получи желаният резултат. Мисля че вече съм в крачка със SOLID или поне съм доста близо Smile .


Шерни си някъде кода да гледаме Smile)
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1577
Мнение 08/06/2017 6:14 pm      Отговорете с цитат


Какво искаш да видиш, контейнера ли Smile?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 145
Bonus: 289
Мнения: 1338
Мнение 08/06/2017 10:23 pm      Отговорете с цитат


teroristd написа:
Какво искаш да видиш, контейнера ли Smile?

Системата Loader/Container/App, и кое как и къде си решил да разпределиш. Контейнерът е горе-долу ясен - контейнери по интернет бол; но неща като App аз лично само съм използвал, и то неявно, в symfony, без да съм особено сигурен кое какво точно прави.
Ще ми е интересно да видя „едноличен човешки“ подход към тази система.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1577
Мнение 09/06/2017 8:02 am      Отговорете с цитат


Кажете къде да ги шервам? Ако ги пусна тук не знам дали ще стане ясна структурата, пък и ще стане доста кода. Колкото за App, в момента още не е готов. Не знам дали има изобщо нещо общо с AppKernel на symfony, но при мен е така да се каже, мястото където стартира цялото приложение. App получава класовете за сесиите, error handling-а, front controller-a и т.н. вижда каква е конфигурацията и стартира приложението според настройките.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
topchokt
Редовен
Редовен

Регистриран на: 14/11/2008 7:48 am

Support: 21
Bonus: 37
Мнения: 2125
Мнение 09/06/2017 8:11 am      Отговорете с цитат


Сподели го в Github.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 342
Bonus: 682
Мнения: 2564
Мнение 09/06/2017 10:21 am      Отговорете с цитат


А и по принцип е хубаво да използваш някакъв VCS Smile

+1 за github.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 80
Bonus: 172
Мнения: 1577
Мнение 09/06/2017 10:39 am      Отговорете с цитат


Лошо няма но освен че трябва да се регистрирам друго не знам за github. Ако някой ми разясни как се ползва ще се пробвам Smile .
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Fakeheal
Support
Support

Регистриран на: 17/04/2010 8:37 am

Support: 342
Bonus: 682
Мнения: 2564
Мнение 09/06/2017 11:00 am      Отговорете с цитат


https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> Дъра-бъра Часовете са според зоната GMT + 2 Часа
12345
Страница 3 от 5


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети