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

> Система инициализации компонентов.
Oyeme  
[x] Дата
Цитировать сообщение

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



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1672
Пользователь №: 16955
На форуме: 7 лет, 9 месяцев, 9 дней
Карма: 94




Грамматическая обишка

https://github.com/abc-framework/abc-framew...r/Container.php

class Container extends ServiseLocator => ServiceLocator

Во всех местах $this->ServiseStorage


   /**
* Проверяет корректность ID сервиса
*
*
@param string $ServiseId
*
*
@return string
*/

protected function validateServise($ServiseId)
{
if (empty($ServiseId) || !is_string($ServiseId)) {
trigger_error('ID service should be a string', E_USER_WARNING);
}

return strtolower($ServiseId);
}


Зачем Вам вообще использовать trigger_error? Это самый высокий уровень иерархией ошибок,у Вас е это в ядре

The same


if ($this->userConfig['debug_mod'] === 'display') {
set_error_handler([$this, 'setException']);
new PhpHandler();
} elseif ($this->userConfig['debug_mod'] === 'log') {
new Loger();
}


Каким образом я смогу отловить определнного типа ошибку обработать? Скажем из самых низов.

  if ($this->userConfig['debug_mod'] === 'display') {

display - должно быть константой
 /**
* Перезаписывает глобальный компонент
*
*
@param string $component
*
@param array $data
*
*
@return object
*/


@return object - улыбнуло


https://github.com/abc-framework/abc-framew...bcProcessor.php

Грамматическая ошибка




/**
* @var object
*/
protected $regestry;


И тут


/**
* @var object
*/
protected $regestry;

/**
* @var object
*/
protected $container;

Вы autocomplete никогда не польовались?

Вот почитайте http://www.phpdoc.org/docs/latest/guides/types.html



 /**
* Выбирает режим обработки ошибок
*
*
@return void
*/

protected function selectErrorMode()
{
if (empty($this->userConfig['debug_mod'])) {
return false;
}

if ($this->userConfig['debug_mod'] === 'display') {
set_error_handler([$this, 'setException']);
new PhpHandler();
} elseif ($this->userConfig['debug_mod'] === 'log') {
new Loger();
}
}



Уже навреное тут упомяналось что return void, а возращяем только 1 раз и то при false.

Метод selectErrorMode говорит об выборе чего-то,а почему тогда возрощяет он что-то?

Если проверить установлен ли мод ошибок - isErrorModeSelected()

    /**
* Бросает исключение на trigger_eror и отчеты интерпретатора
*
*
@return void
*/

public function setException($code, $message, $file, $line)
{
if (error_reporting() & $code) {
throw new ErrorException($message, $code, $file, $line);
}
}



Что это такое вообще? Причем тут error_reporting() ? И для чего нам нужно устанавливавать Exception?

Если Вы хотите расширить Exceptions, то делается это очень просто,расширяя Ваш класс Exceptions в конструкторе Вы просто вызваете parent метод дополнительными аргументами.

Пример
http://php.net/manual/en/language.exceptions.extending.php

Потом еще гляну с точки зрения архитектуры.


--------------------
Programming: Private lessons via skype £45/h

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

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



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

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

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


Цитата (chee @ 20.10.2015 - 07:06)
Голимая статика, работаешь на уровне глобального доступа, без всяких внедрений зависимостей. Это не по науке.

Я предвосхитил этот наезд. Там все подробно.
Цитата (chee @ 20.10.2015 - 07:06)
Это вылетит с фатальной ошибкой . Это не по науке.

Это вообще пустое место, это я хотел для демонстрации сделать. Там нет кода.
Цитата (chee @ 20.10.2015 - 07:06)
Ты пишешь по ООП науке, а значит нужно применять механизмы сопутствующие этой технологии, я про эксепшены. А у тебя опять, какие-то тараканы

Про этих тараканов позже, когда Oyeme буду объяснять, зачем так.
Цитата (chee @ 20.10.2015 - 07:06)
Это за гранью, я уже знаю что у тебя найдутся отговорки, так что можешь пропустить.

Нет уж, открыл рот, договаривай. Что там за гранью, я не понимаю.
Цитата (chee @ 20.10.2015 - 07:06)
Я больше, чем уверен, что ты скатишься в глобокий говнокод на статике

Про говнокод полегче. Еще посмотрим, у кого он позабористее будет, когда закончу.


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

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

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

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

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



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

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

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


Цитата (Oyeme @ 20.10.2015 - 07:34)
Каким образом я смогу отловить определнного типа ошибку обработать? Скажем из самых низов.

Из каких низов... Это для дебаггера сделано, там есть стек, все прекрасно видно, откуда она и зачем.
Цитата (Oyeme @ 20.10.2015 - 07:34)
display - должно быть константой

Зачем? Это усложнит работу с конфигой. Тем более, где её взять в приложении? Конфига подключается первой строчкой.
Цитата (Oyeme @ 20.10.2015 - 07:34)
@return object - улыбнуло

С этого места по подробнее. Что там веселого? :)
Цитата (Oyeme @ 20.10.2015 - 07:34)
Вы autocomplete никогда не польовались?

Нет, небыло надобности. Надо посмотреть на досуге.
Цитата (Oyeme @ 20.10.2015 - 07:34)
Что это такое вообще? Причем тут error_reporting() ? И для чего нам нужно устанавливавать Exception?

Это нужно для адаптации к штатному обработчику ошибок. Я сто раз давал тебе ссылку, ты видимо ни разу не прочитал. Из раза в раз про эти эксепшены идиотские.

Это нужно для того, чтобы на штатные нотисы или варнинги бросалось исключение. Его отлавливает мой дебаггер. Для этого устанавливается свой обработчик:
set_error_handler([$this, 'setException']);


Этот обработчик бросает исключение.
    public function setException($code, $message, $file, $line)
{
if (error_reporting() & $code) {
throw new ErrorException($message, $code, $file, $line);
}
}

И если приглядеться внимательно, то там можно разглядеть, что меняются местами аргументы. Дело в том, что set_error_handler в callback передает их не в том порядке.

Кроме того, если бросать исключения на триггер и нотисы, то тогда в отчете будет файл и линия выброса исключения, а не кода, который вызвал ошибку. Для этого вот сия затея.

Вот и всё. Теперь мой дебаггер ловит и все неотловленные ексепшены, и trigger_error, и шатные нотисы и варнинги. А это значит, что всё можно красиво слогировать в одном месте. А trigger_error вместо throw нужен чтобы увидеть или слогировать все ошибки сразу. Потому что неотловленное исключение остановит скрипт.

При этом вообще никаких помех отловить ексепшен внутри скриптов. И нет никакой надобности их распределять по уровням. Дебаггер сделает это сам.

Для того, чтобы понять, нужно один раз попробовать. У дебаггера два режима. Для приложения и для самого фреймворка. Если стоит первый, то в стеке цепочка фреймворка игнорируется. Чтобы не путаться в дебрях. Там видно прохождение только по приложению. Если второй режим - видно все полностью. Вот еще раз сфотаю, и давайте закончим тыркать меня эксепшенами.


UPD За грамматику огромное спасибо. :)

Присоединённое изображение
Присоединённое изображение


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

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

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

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

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




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11785
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 11 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 11 дней


Цитата (twin @ 20.10.2015 - 13:55)
Надо посмотреть на досуге.

куда посмотреть? :lol:

хотел тоже указать на object, но забыл
Цитата (twin @ 20.10.2015 - 13:55)
Что там веселого? :)

то, что в нормальных IDE не будет работать автодополнение.
вместо object должен указываться конкретный тип, например тут:
    /**
*
@var object
*/

protected static $abc;

должно быть так:
    /**
*
@var Abc
*/

protected static $abc;

в твою IDE автодополнение не завезли? или ты в блокноте кодишь?
Цитата (twin @ 20.10.2015 - 13:55)
Нет, небыло надобности.

честно говоря, я в шоке
впрочем, после таких откровений многое начинает проясняться


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

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



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

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

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


Цитата (Invis1ble @ 20.10.2015 - 10:31)
в твою IDE автодополнение не завезли? или ты в блокноте кодишь?
Нет, не завезли. У меня самодельный редактор. Не блокнот конечно, но вот с аннотациями там бяда. :)
У меня есть нет-бенс, но чтото он мне кажется тяжелым и недружелюбным. Я ингода прогоняю в нем скрипты на проверку, из-за этого пришлось даже сделать такой казус. Потому что он орал на ошибку синтаксиса вот тут:
style="display:<?=$display; ?>"


Но в повседневке мне он не нравится. Ну теперь буду аннотации в нем писать. Раз такое дело.

Что касается этого:
Цитата (Invis1ble @ 20.10.2015 - 10:31)

Цитата (twin @ 20.10.2015 - 13:55)
Что там веселого? :)

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

Вообще тип там писать надо, так что не "вместо", а "вместЕ". И это в парамеитрах, а не в свойствах. В свойствах зачем? Для IDE? Я не в ней не особо разбирался в этом плане.
Цитата (Invis1ble @ 20.10.2015 - 10:31)
честно говоря, я в шоке
впрочем, после таких откровений многое начинает проясняться
А что, был туман? :D
Я всегда говорил, что делаю не как все, а как мне удобно. И у меня очень неплохо получается кстати. А если бы как все... сейчас бы на фрилансе подъедался за пару-тройку килорублей в месяц. :D

Кстати, насчет дебаггера. Вот поставил, пощелкайте. Чтобы вообще навсегда забыть меня упрекать эксепшенами.


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

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

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

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

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




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11785
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 11 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 11 дней


Цитата (twin @ 20.10.2015 - 15:05)
Вообще тип там писать надо, так что не "вместо", а "вместЕ". И это в парамеитрах, а не в свойствах.

еще раз перечитай, что написано по этой ссылке

Цитата (twin @ 20.10.2015 - 15:05)
Я всегда говорил, что делаю не как все, а как мне удобно.

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


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

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



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

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




Цитата (twin @ 20.10.2015 - 13:04)
Я предвосхитил этот наезд. Там все подробно.

Вообще-то нет, у тебя демо, написано на статике. Используй в демо ООП подход, а то как-то не по науке. Заявляешь одно, а делаешь другое.


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

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

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



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

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

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


Цитата (chee @ 20.10.2015 - 11:14)
Вообще-то нет, у тебя демо, написано на статике. Используй в демо ООП подход, а то как-то не по науке

Ерунды не говори. Это дополнение. А в демо нужно показывать максимальные возможности. Я сразу говорил, что буду как можно больше упрощать использование. А не писать код так, чтобы он был ООП ради ООП. Так можно и лоб расшибить от фанатизма. Их ты тоже в говнокодинге обвинишь, святой ты наш? biggrin.gif


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

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

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

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

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



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

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

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


Oyeme
Invis1ble
Растолкуйте плиз, что не так с объектом то? Вот почему все время недомолвками то... Ну посмеялись над недолеким, а рассказать слабо чтоли? Почему нельзя так писать:
/**
*
@var object
*/

protected $container;
И что писать, если там объект?


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

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

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

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

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



Абориген
*****

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




Цитата

а как мне удобно. И у меня очень неплохо получается кстати.

Видимо поэтому ваш код так сложно понимать. Кода фактически нет, но уже всё запутано. Ни по пути, ни по названию, ни по структуре непонятно, что это контроллер. Если это контроллер, то мне видится, что там вообще не место методу Dbg::tracersSelector($var) . Вместо этого Dbg::render($location, $listing) мне видится нормальный View компонент, в том числе с render методом, где можно указать имя шаблона, параметры нужные этому шаблону и получить назад готовый html код, который уже можно отправлять клиенту.

Мне видится контроллер как очень простой класс с минимумом кода. Сходил куда-то, получил оттуда данные, отдал всё вью компоненту. У вас как-то всё запутано и хаотично, много методов, многие из которых помоему вообще не нужны. Я вообще ничего там не понял. Я все равно пока не понял, как вы на это собрались писать функциональный тест, когда у вас даже еще роутинга нет.

Мне вот почему-то видится, что у вас намечается несколько View компонентов в вашем фреймворке, вместо одного нормального. Один у вас уже есть https://github.com/abc-framework/abc-framew...er/php/View.php
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Invis1ble  
Дата
Цитировать сообщение

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




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11785
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 11 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 11 дней


Цитата (twin @ 20.10.2015 - 16:05)
Растолкуйте плиз, что не так с объектом то? Вот почему все время недомолвками то... Ну посмеялись над недолеким, а рассказать слабо чтоли?

так я, вообще-то, и так рассказал
нужно для автодополнения, для генерации документации
можно и object, т.к. тип Abc также является object'ом, но уточнение типа - гораздо лучше
как я могу тебе по-другому объяснить?
если бы ты пользовался автокомплитом, чужими готовыми решениями, интересовался, почему в них так, а не иначе, то сам бы всё понял
по твоей же ссылке есть пример, как должно быть:
Цитата (twin)
Их ты тоже в говнокодинге обвинишь, святой ты наш?  biggrin.gif

если непонятно, то пусть Oyeme еще попытается объяснить


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

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



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

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

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


Цитата (Santehnick @ 20.10.2015 - 12:06)
Ни по пути, ни по названию, ни по структуре непонятно, что это контроллер.

Просто привыкли все мерять аршином MVC. Контроллеры бывают разные. Даже у трамвая есть контроллер. У электровоза есть. Контроллер, это устройство управления. Можно интерфейсом обозвать, просто интерфейс более размытое понятие. Так вот, классических MVC контроллеров там пока нету вообще. И роутинга тоже. Но контроллер управления дебаггером есть. И это как раз этот класс. Я же дал ссылку, посмотреть как работает. Там закомментированы как раз вызовы этого класса, на который ты обиделся из-за тестов. Это входная точка, управление, контекст. А где же еще создавать объекты, как не там. Или их тоже нужно через контейнер сунуть? Для чего так усложнять, не проще ли сделать функциональный тест. Что собственно практически и сделано...


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

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

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

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

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



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1672
Пользователь №: 16955
На форуме: 7 лет, 9 месяцев, 9 дней
Карма: 94




Цитата
$mysqli = Abc::component('MySQLi');


1.component - сущуствительное.Чтобы что-то получить ипользуется глагол.
2. MySQLi это часть от DataSourceAdapter, а не конкретно компонент.
Adapters - > DataSouceAdapter - > Mysql
Уже не верно построена арихитектура.

Цитата
Вот и всё. Теперь мой дебаггер ловит и все неотловленные ексепшены, и trigger_error, и шатные нотисы и варнинги. А это значит, что всё можно красиво слогировать в одном месте. А trigger_error вместо throw нужен чтобы увидеть или слогировать все ошибки сразу. Потому что неотловленное исключение остановит скрипт.



У Вас нет иерархии exceptions, как Вы собираитесь обрабатывать ошибки? останавливая всю аппликацию и показывая линию ошибки?

Я уже писал это раза 5 точно за все время dry.gif Говорим на разных языках.

Ошибки нужно обрабатывать, а не прятять.

twin , Вы как-будто из леса вылезли и спрашиваете - Какой сейчас год?

Поэтому и конференции и открытые community созданны для того чтобы люди говорили на одном языке.


--------------------
Programming: Private lessons via skype £45/h

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

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



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

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




Цитата (twin @ 20.10.2015 - 15:41)
Их ты тоже в говнокодинге обвинишь, святой ты наш? biggrin.gif

Вообще-то, да, попахивает, но не воняет.
Цитата (twin @ 20.10.2015 - 15:41)
Ерунды не говори. Это дополнение. А в демо нужно показывать максимальные возможности.

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


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

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

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



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

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

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


Цитата (Oyeme @ 20.10.2015 - 12:41)
1.component - сущуствительное.Чтобы что-то получить ипользуется глагол.

А вот тут я не согласен полностью. Если читать код, то глагол здесь =. Почему используется ключевое слово new, а не get? Все крайне логично:
$db = new Mysqli;
В переменную $db записать новый объект класса Mysqli. Ровно как и у меня.
$mysqli = Abc::component('MySQLi');
В переменную $misqli записать компонент фреймворка. Иначе получается абракадабра. Если нет впереди Abc::, то тогда совсем другое дело:
    $abc = new AbcProcessor; 
$mysqli = $abc->getComponent('MySQLi');
D переменную $misqli записать взятый из объекта $abc сомпонент. Тут я ничего не нарушил. Просто это непривычный тебе статический синтаксис.
Цитата
2. MySQLi это часть от DataSourceAdapter, а не конкретно компонент.

Ну и что, что адаптер. Что мешает ему быть компонентом при этом?
Цитата (Oyeme @ 20.10.2015 - 12:41)
У Вас нет иерархии exceptions, как Вы собираитесь обрабатывать ошибки? останавливая всю аппликацию и показывая линию ошибки?

Покажите мне на примере, что имеется ввиду. Какая обработка ошибок еще нужна, мне не ясно.
Цитата (Oyeme @ 20.10.2015 - 12:41)
Ошибки нужно обрабатывать, а не прятять.
Ошибки нужно не обрабатывать, а исправлять. Их не должно быть вообще. Если это логические казусы, то тут отдельный разговор. Как обрабатывать ошибку отсутствия компонента? Если его нет, никакая обработка уже не поможет. Или что в конце концов имеется ввиду?
Цитата (Oyeme @ 20.10.2015 - 12:41)
twin , Вы как-будто из леса вылезли и спрашиваете - Какой сейчас год?

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

Иначе я просто стырил бы все с какой-нибудь симфонии, и радовался, как пацак. :)


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

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

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

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

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

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