Создание блога

Valick

Новичок
firep91613, вы молодец! Даже если вы на данном этапе делаете чо-то "не правильно", вы получаете практический опыт. С каждым последующим разом у вас должно получаться лучше.
 

firep91613

Новичок
Я еще не до конца ознакомился с документацией PHPUnit. Но как тестировать метод, в котором есть редирект?
 

AmdY

Пью пиво
Команда форума
Я еще не до конца ознакомился с документацией PHPUnit. Но как тестировать метод, в котором есть редирект?
Вот ради этого я тебя и послал разбираться с юнитом. Вот ты увидел недостаток своей архитектуры с явной отсылкой http заголовка. Есть правильный вариант - завести отдельный класс HttpResponse implements ResponseInterface, в котором будут храниться данные для отправки, а отсылка будет делаться уже в диспатчере роутинга. Так ты отвяжешься от http слоя и сможешь свой код запускать например в консоли, реализовав для консоли другой ConsoleResponse implements ResponseInterface.
Если переписывтаь на респонс не хочется, просто вынеси отправку заголовка в отдельный метод и запокай его https://phpunit-documentation-russian.readthedocs.io/ru/latest/test-doubles.html
 

firep91613

Новичок
Есть правильный вариант - завести отдельный класс HttpResponse implements ResponseInterface, в котором будут храниться данные для отправки, а отсылка будет делаться уже в диспатчере роутинга.
Тогда еще надо RequestInterface интерфейс реализовать. Чтобы уж все по феншую было.

А использование голых сессий тоже ведь не правильно? Надо класс сделать для это?
 

firep91613

Новичок
@AmdY, а самая главная проблема была не в том что в методах было много ветвлений? Мне вот кажется, исходя из того что я пока изучил, что ветвления затрудняют тестирование.
 

AnrDaemon

Продвинутый новичок
Почти. Там несколько больше чем одна проблема.
У меня есть свой базовый класс https://packagist.org/packages/anrdaemon/net-url и в разработке обёртка для совместимости с PSR-7 (там немного кода, но есть парочка проблем идеологического свойства).
 

AnrDaemon

Продвинутый новичок
В целом, таким лучше не морочиться и брать готовое.
 

firep91613

Новичок
Друзья, мне нужен совет. Есть ли смысл продолжать возню с голым PHP? Или лучше переключиться на фреймворк? На голом PHP же все равно ничего не пишут.
 

AnrDaemon

Продвинутый новичок
На голом PHP же все равно ничего не пишут.
Бред.

Фреймворк - не причина, а следствие.
У тебя есть задача, ты пишешь решение, начинаешь его поддерживать.
Чтобы постоянно не переписывать решение целиком, ты его определённым образом структурируешь.
Из этого рождается определённый фреймворк.
framework [ˈfrāmˌwərk], Noun, an essential supporting structure of a building, vehicle, or object.

Если задача типовая, если решение не надуманное, фреймворк становится популярным.

Laravel, например. Типичное решение задачи "домашняя страничка про моего кота".
Но для сколько-нибудь серьёзного проекта с конкретными целями, ОТЛИЧАЮЩИМИСЯ от заданной структуры приложения, он уже не подойдёт.
 

AmdY

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

firep91613

Новичок
Laravel, например. Типичное решение задачи "домашняя страничка про моего кота".
Но для сколько-нибудь серьёзного проекта с конкретными целями, ОТЛИЧАЮЩИМИСЯ от заданной структуры приложения, он уже не подойдёт.
А почему так нелестно о Laravel? Для интернет-магазина не сгодится чтоли?
 

AmdY

Пью пиво
Команда форума
А почему так нелестно о Laravel? Для интернет-магазина не сгодится чтоли?
Пойдёт для всего. Фреймворк буквально пишется под проекты его авторов, поэтому прекрасно подходит для большинства проектов.
 

AnrDaemon

Продвинутый новичок
А почему так нелестно о Laravel?
Почему "нелестно"?

Для интернет-магазина не сгодится чтоли?
Смотря что вкладывать в понятие "интернет-магазин". Если убожество уровня https://www.ekf-rus.ru/ - есть готовые решения на том же Laravel. Если что-то по-настоящему вменяемое, то… можно и на Laravel. Но самого его там будет настолько мало, что проще не использовать. Потому что структура приложения будет совсем другая.
 

miketomlin

Новичок
На голом PHP же все равно ничего не пишут.
В общем правильно. Если ты не используешь чужой (популярный), ты используешь свой готовый или по ходу дела изобретаешь свой. Фреймворки могут быть заточены под разное, соответственно пользуешься разными, если решаешь очень разные задачи. Более того, можно одно и то же сделать на разных с примерно одинаковой эффективностью. Соответственно выбираешь, что использовать, на основе каких-то критериев.

Некоторые тупо используют более-менее универсальный с разной эффективностью применительно к определенным задачам. Я уже сказал, что это тупо 😁
 
Последнее редактирование:
Сверху