All streams
Search
Write a publication
Pull to refresh
40
0
Роман Сохарев @greabock

Разработчик

Send message
я думаю, что catch «на месте» должен употребляться только для переброса исключений, как в примере с FileNotFound => AdressNotFound. Во всех прочих случаях исключения должны обрабатываться «общей пачкой» на уровне приложения.

<? namespace App\Support\Exceptions\Handlers;

use App\Supprot\Exceptions\Contracts\ExceptionHandlerContract;
use App\Supprot\Exceptions\Handlers\DefaultHandler;

class ExceptionHandler implments ExceptionHandlerContract {
      protected $defaultHandler = DefaultHandler::class;
               
      protected $customHandlers = [];    

      public function handle(Exception $e)
      {
             $exceptionType = get_class ($e);

             if(array_key_exists($exceptionType, $this->customHandlers))
             {
                   $handler = new $this->customHandlers[$exceptionType];

                   return $this->runHandler($handler, $e);
             }
             
             return $this->handleDefault($e);
      }

      protected function handleDefault(Exception $e)
      {
           $handler = new $this->defaultHandler;

           return $this->runHandler($handler, $e);
      }

      public function addCustomHandler($exceptionClassName , $handlerClassName)
      {
           $this->customHandlers[$exceptionClassName] = $handlerClassName;
      }

      public function runHandler(ExceptionHandlerContract $handler, Exception $e)
      {
             return $handler->handle($e);
      }
}

Где-то в дебрях инициализации приложения:
      $app->exceptionHandler->addCustomHandler(CustomHandler::class);

Ну и сам запуск приложения.
rquire_once('../paths.php');

rquire_once(VENDOR_AUTOLAD_PATH);

$app = new App;

try 
{    
  $app->run();
} 
catch (Exception $e) 
{

    $app->exceptionHandler->handle($e);
}


Простите, если где-то ошибся накатал прямо сейчас в браузере…
Прекрасный слог. Последовательно, обстоятельно. Мы бы с Вами написали много прекрасных статей. Жаль, что Вы из «другого лагеря» =)
Послесловие, правда, несколько экспрессивное…
Вы не совсем поняли. Судя по контексту, автор имел ввиду ситуацию, когда каждый конкретный адрес-сущность хранится в отдельном файле
Например, если адреса у нас хранятся в файлах

в файлах, но не в файле.
А вот в случае хранения в файле и отсутствия этого самого файла (таблицы или даже базы) — ошибка более глобальная, чем отсутствие конкретного адреса — вы правы.
Это же наверняка очень интересно! Ну почему же я прогуливал матан…
Про CT уже было на хабре, довольно неплохо расписано.
Автор — очень занимательный персонаж. Он постоянно висит в чате русского сообщества Laravel и неустанно повторяет транслитом:

routing v vashem laravel govno
arhitectura vashego laravel govno


и так далее… ну взрослый же человек…
Да хоть десять раз говно. Выйди ты из чата и не мучайся. То ли зависть к большому коммьюнити душит, то ли еще какие причины — мне не ведомо. Но подобное поведение для человека, который пытается продвинуть свой продукт, и по сути является лицом своего продукта — как минимум, некрасиво.
Мне одному показалось, что этот парень с «ветрянкой» на Татьяновича похож чем-то? ))
[captain] таки «булавой по грызуну» — это аллюзия на «коси и забивай» [/captain]
Эм… работа моделей в ларе — это повод для дискуссии, но вряд ли для поста на хабр. Да еще и такой короткий… Да еще и перевод… плохой выбор, в общем.
Было сложно но я доскролил до сюда, чтобы написать этот комментарий.
Все мутят свой саблайм. Что ж он им так покоя не дает-то?
Я вообще пишу на php (да простят меня боги)… и на php мы пользуемся «умными» коллекциями уже очень давно. Да, они не в ядре — это отдельные либы, и все же… Я все время слышу что php — недоязык и вообще очень плохой. А теперь я немного удивлен, что для многих в «крутой яве» такой подход явился откровением. Если я что-то не так сказал или не так понял, то поправьте меня.
Вот так, с помощью догадок, предположений, и призентации в PowerPoint, можно посадить человека на 9 лет.
[joke] Мама, я в телевизоре! [/joke]
Спасибо, Вам )
И не мешало бы добавить ахтунг: «Осторожно! Много картинок».
Вот сразу видно, что Вы не понимаете предмет разговора. Причем здесь тот факт, что кто-то говнокодит? Человек пишет уроки по оптимизации, тестированию, райтвэй, и философии рефакторинга. Да, это правда — кроме этого он еще пишет практические примеры для лары, но это не суть. А если кто-то говнокодит после просмотра «уроков» (кавычки здесь не случайно) от knowcity, а сайт laracasts ( да что там! даже офф доки по ларе) в глаза не видел. то как это связано с Jeffrey Way?
Я тоже за Джеффри. Он внес невероятный вклад в популяризацию PHP. Этот человек действительно помогает людям перестать (прошу прощения) «говнокодить». И это касается не только частного случая Laravel, но и PHP в целом.
Видимо, мы по-разному понимаем слово «нативный». Для меня нативный (буквально — родной), это то, что идет из коробки с основным ПО и/или рекомендовано к употреблению автором этого ПО.
Ну аsset-pipeline в пятерке точно не нужен. Нативный эликсир съедает такие пакеты на завтрак.

Information

Rating
Does not participate
Location
Россия
Registered
Activity