Задать вопрос
@EpIvIaK

Переписать грамотнее и с помощью Laravel реально ли и каким лучше образом?

Приветствую. Тренирую Web потихоньку, PHP + HtmlCSS + JS. Друг (далёкий от темы) даёт задания (так как опытный пользователь сайтов), он мне просто помогает, придумывает задумки-сайты. Доделал вот один, там файлов 16-17 суммарно, в 6-7 (расширение .php) из них в перемешку php с html. Хотя я и делал echo <<< html END. Но показав сайт одному опытному человеку, он сказал, что всё же это недопустимло и вообще лучше на Laravel переписать это всё.
А так как я хочу это на ГитХабе держать и если что показать в будущем кому-то при надобности если что искать буду, то наверно не солидно оставлять это в этом изначальном варианте (стыдноватая смесь PHP c HTML, даже для первого более менее серьёзной пет-работы). И коль у меня цели это показывать в будущем по надобности наверно стоит на Laravel это переписать. Но там есть файл и на 1300 строк например.

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

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

Более наглядно (не буду копировать всё, а оставлю основное содержание), вот файл например:

<?php
Некоторые проверки, уточнения
}
echo <<<REG
    <!doctype html>
    <html lang="en">
    <head>
... тут всякие визуальные уточнения страницы; форма, css специфика для страницы.
<script> // тут всякие оперативные реакции на действия в браузере требуемые страницей.
            function validate(){
</script> 
REG;
?>
<?=require_once  $_SERVER['DOCUMENT_ROOT'] . '/public/footer.html';?> //- конец страницы.


Вот. Это одна из наглядных страниц где перемешка.
Но есть файл и сложнее, там вся логика корзины, там всё в разы сложнее.
И вот думаю реально ли всё это без дикой боли на Laravel рельсы перенести...

Такие дела. =)
  • Вопрос задан
  • 268 просмотров
Подписаться 1 Простой 11 комментариев
Решения вопроса 2
vhood
@vhood
Не забывайте отмечать решения
Выводить HTML через echo точно не правильно, изначально PHP полюбили как раз за то, что можно закрыть PHP тег ?> и писать чистый HTML, можно посреди HTML открыть PHP тег <?php и воспользоваться языком, например вывести HTML в цикле (опять же, закрыв тег после начала цикла), или использовать переменную как значение, или выводить HTML по условию.

В Laravel используется шаблонизатор Blade, но если есть ощущение, что Laravel изучать еще рано, можно через composer поставить какой-нибудь самостоятельный шаблонизатор (искать не сложно) и научиться пользоваться им.

тут всякие визуальные уточнения страницы; форма, css специфика для страницы
css стоит писать отдельно и подключать как файл/файлы, для формы будет отдельный шаблон

тут всякие оперативные реакции на действия в браузере требуемые страницей.
js тоже стоит писать отдельно и подключать как файл/файлы

Работа с шаблонами - не самое востребованное знание, скорее очень базовое. Стоит так же изучить:
  • Архитектурный паттерн MVC (Model, View, Controller), т.к. его все популярные фреймворки реализуют и с ним так или иначе придется работать
  • Базы данных и SQL. Обязательно нужно уметь проектировать таблицы и индексы, забирать данные из базы и обновлять их
  • Безопасность, или как правильно писать приложения, что-бы их не взломали SQL инъекциями, XSS атаками и т.д.
  • Маршрутизацию. Можно попробовать найти какой-нибудь php-router на github и изучить работу с ним, внедрить в проект

Таким образом, приложение будет обрабатывать запрос через некий роутер, посылать его в контроллер (буква C из MVC), контроллер запросит данные в какой-нибудь модели (M), отправит их в шаблон некого шаблонизатора и вернет с его помощью готовый HTML.

После этого можно будет написать такое же приложение на Laravel, где все это уже есть (и даже больше, разумеется), познакомиться с ActiveRecord (объект, который представляет строку в базе данных) и ORM (для построения запросов). Перед началом стоит прочитать всю документацию, изучить возможности.

Так же добавлю, что первую работу лично я нашел без знания фреймворков, но хорошее знание языка и баз данных, а так же знания HTML, CSS и базовые знания JS - обязательно. Да и без фронтенда динамичный сайт не сделать, но начать изучение фронтенда лучше всего с изучения чистого javascript, т.к. знание языка важнее и открывает правильную дорогу дальше. А вот на каком этапе изучения останавливаться и куда больше делать упор - решать Вам.
Ответ написан
Шаблонизатор - прекрасная и очень нужная штука для PHP.

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

Поэтому, совет перейти на Laravel очень разумен. Это неплохой выбор, фреймворк крайне популярен, в него встроено вообще всё, что вам понадобится для написания практически любого проекта.

Могу дать вам ещё один вариант вместо Laravel. Это Symfony. Да, освоение этого фреймворка будет немного сложнее, чем Laravel, но преимуществом Symfony является то, что он заставляет писать код чище, чем обычно пишут на PHP. Он более строгий, а строгость в программировании всегда к лучшему. Symfony состоит из большого числа компонентов, и собирать проект можно как конструктор. Минимальная его сборка весьма легковесна. Кстати, огромное количество компонентов Symfony используется и в других фреймворках, многие из них можно использовать и без фреймворка.

Как раз таким компонентом, который можно использовать без фреймворка, т.е. так, как вы хотите, является шаблонизатор Twig. Это превосходный шаблонизатор, его легко внедрять.
https://twig.symfony.com/

Но всё же рассмотрите возможность перейти на фреймворк, потому что сейчас в мире PHP почти везде используют именно фреймворки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Реально, но надо выучить Laravel (или любой другой современный фреймворк), ну и плюсом набраться опыта, чтобы написать "грамотнее".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы