Notice: file_put_contents(): Write of 17301 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter@phpproglib P.5285
PHPPROGLIB Telegram 5285
Автор статьи делится размышлениями о том, как упростить работу с контроллерами в Laravel, избегая дублирования кода при обработке CRUD-операций. В стандартном подходе для выполнения действий с базой данных он использует try-catch внутри контроллера, чтобы обрабатывать возможные ошибки и показывать пользователю сообщения об успешном или неудачном результате. Однако частое повторение этого кода натолкнуло его на мысль вынести обработку ошибок и транзакций в само действие (Action), а не в контроллер.

Для этого он решил использовать PHP-атрибуты, появившиеся в версии 8.0. Он создал атрибут #[Transactionable], который можно добавлять к методам, требующим обёртки в транзакцию. Затем с помощью Reflection API проверяется, есть ли у метода этот атрибут, и если да, то метод выполняется внутри транзакции. Это позволяет контроллеру просто вызывать execute(), не заботясь о try-catch и логировании ошибок.

Однако в процессе реализации автор столкнулся с проблемами: код начал усложняться, скрывая важные детали обработки ошибок и усложняя отладку. В итоге он пришёл к выводу, что в данном случае лучше следовать принципу «явное лучше, чем неявное», и оставил первоначальный вариант с try-catch в контроллере.

👉Читать статью
😁17👍3🤔1



tgoop.com/phpproglib/5285
Create:
Last Update:

Автор статьи делится размышлениями о том, как упростить работу с контроллерами в Laravel, избегая дублирования кода при обработке CRUD-операций. В стандартном подходе для выполнения действий с базой данных он использует try-catch внутри контроллера, чтобы обрабатывать возможные ошибки и показывать пользователю сообщения об успешном или неудачном результате. Однако частое повторение этого кода натолкнуло его на мысль вынести обработку ошибок и транзакций в само действие (Action), а не в контроллер.

Для этого он решил использовать PHP-атрибуты, появившиеся в версии 8.0. Он создал атрибут #[Transactionable], который можно добавлять к методам, требующим обёртки в транзакцию. Затем с помощью Reflection API проверяется, есть ли у метода этот атрибут, и если да, то метод выполняется внутри транзакции. Это позволяет контроллеру просто вызывать execute(), не заботясь о try-catch и логировании ошибок.

Однако в процессе реализации автор столкнулся с проблемами: код начал усложняться, скрывая важные детали обработки ошибок и усложняя отладку. В итоге он пришёл к выводу, что в данном случае лучше следовать принципу «явное лучше, чем неявное», и оставил первоначальный вариант с try-catch в контроллере.

👉Читать статью

BY Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter


Share with your friend now:
tgoop.com/phpproglib/5285

View MORE
Open in Telegram


Telegram News

Date: |

Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link). On Tuesday, some local media outlets included Sing Tao Daily cited sources as saying the Hong Kong government was considering restricting access to Telegram. Privacy Commissioner for Personal Data Ada Chung told to the Legislative Council on Monday that government officials, police and lawmakers remain the targets of “doxxing” despite a privacy law amendment last year that criminalised the malicious disclosure of personal information. The Channel name and bio must be no more than 255 characters long Choose quality over quantity. Remember that one high-quality post is better than five short publications of questionable value. Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau.
from us


Telegram Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
FROM American