Как хранить код страниц в Laravel?

Есть сайт на Laravel 8 и админка к нему, все самописное.
Встал вопрос дать юзерам генерить странички из админки и тут собственно вопрос:
Где хранить код, который напишет юзер? В БД? В файлах? Если в файлах нужно юзать кеш?
Вообще еще такого не делал и не понимаю как правильно. Фронтом в пике будет пользоваться примерно 500 человек.

Дополнительно:

Встал вопрос дать юзерам генерить странички из админки

Обычно юзеры генерят контент, 90% которого - текст. Ну еще таблички и картинки. Или у вас другой функционал, если да - описывайте какой.

  • ThunderCat, не стандартный, типо страницы: о нас, контакты и прочее подобное
  • Ответы:

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

    Важно правильно подобрать поля и оптимизировать базу, соблюдая все нормальные формы (если таблиц планируется много, конечно).

    Вот например, какие поля есть в MySQL: https://dev.mysql.com/doc/refman/8.0/en/storage-re...
    Поля типа LONGTEXT могут съесть до 4 гигабайтов (!!!) чистого текста в одной строке. Но, скорее всего, вам хватит и обычного TEXT с ~65 тысячами символов. Только аккуратнее с поиском по таким полям.

    • на первых парах точно.

      А если вам вставать ко второй? )

    используйте генератор. Смысл простой.
    У вас есть запись в бд и сгенерированный файл.
    Алгоритм такой.
    1. при редактировании вы забираете данные из бд
    2. при сохранении данные кладутся в бд и генерируется статичная страница
    3. при обновлении см пп 1

    Я бы хранил в файлах, создайте в storage папку для хранения и создайте геттер и сеттер (или акцессор и мутатор, кому как нравиться) для модели. К примеру у вас есть модель AppModelsPage

    Не забыть при удалении экземпляра модели удалить и файл, для этого используйте события модели.

     

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

     

      • Как хранить код страниц в Laravel?Есть ответ
      • 09.04.2024
      Ответить

      Для хранения кода страниц в Laravel, обычно используется шаблонизатор Blade. Blade позволяет создавать шаблоны страниц с помощью простого и интуитивно понятного синтаксиса.

      Для создания новой страницы в Laravel с использованием Blade, вам необходимо создать новый файл в директории resources/views. Например, если вы хотите создать страницу с именем "welcome.blade.php", то вам нужно создать файл welcome.blade.php в директории resources/views.

      Пример кода страницы welcome.blade.php:

      После того как вы создали файл страницы, вы можете использовать эту страницу в ваших контроллерах. Например, если вы хотите вернуть страницу welcome.blade.php из контроллера, вы можете сделать это следующим образом:

      В данном примере мы используем функцию view() для возвращения страницы welcome.blade.php. Laravel автоматически будет искать файл welcome.blade.php в директории resources/views и отобразит его содержимое.

      Таким образом, вы можете легко хранить код страниц в Laravel с помощью шаблонизатора Blade и директории resources/views. Не забывайте также о других возможностях Laravel, таких как использование макетов (layouts) для создания общих элементов страницы и включения динамических данных в ваши шаблоны.

      • Как хранить код страниц в Laravel?Есть ответ
      • 07.04.2024
      Ответить

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

      1. Использование Blade шаблонов:
      Blade - это мощный шаблонизатор, встроенный в Laravel, который позволяет создавать шаблоны страниц с помощью простого и выразительного синтаксиса. Для хранения кода страниц с использованием Blade шаблонов, вам нужно создать отдельные файлы .blade.php для каждой страницы и определить их в папке resources/views. Например, для создания страницы "home.blade.php" вы можете создать файл в папке resources/views и написать в нем HTML-код страницы с использованием Blade-директив.

      Пример кода страницы home.blade.php:
      html

      Home Page

      Welcome to our website!

      2. Использование компонентов:
      В Laravel также есть возможность создавать и использовать компоненты, которые позволяют повторно использовать части кода на разных страницах. Для этого вам нужно создать отдельные компоненты в папке resources/views/components и затем подключать их на нужных страницах. Например, вы можете создать компонент "header.blade.php" для хранения кода шапки сайта и подключить его на всех страницах, где необходимо отобразить шапку.

      Пример кода компонента header.blade.php:
      html

      Our Website

      Home
      About Us
      Contact

      3. Использование контроллеров и маршрутов:
      Для хранения кода страниц в Laravel также можно использовать контроллеры и маршруты. Вы можете определить маршруты в файле routes/web.php и указать контроллер, который будет обрабатывать запросы на эти маршруты. В контроллерах вы можете определить логику обработки запросов и передать данные в представления для отображения на страницах.

      Пример кода контроллера PagesController.php:
      php
      namespace App\Http\Controllers;

      use Illuminate\Http\Request;

      class PagesController extends Controller
      {
      public function home()
      {
      return view('home');
      }

      public function about()
      {
      return view('about');
      }

      public function contact()
      {
      return view('contact');
      }
      }

      4. Использование CRUD операций:
      Если ваш проект требует хранения и отображения данных из базы данных, то для работы с ними в Laravel можно использовать CRUD операции (Create, Read, Update, Delete). Для этого вы можете создать модели для ваших данных, контроллеры для управления ими и представления для отображения данных на страницах. Например, вы можете создать модель Post для хранения постов блога и реализовать CRUD операции для работы с ними.

      Пример кода модели Post.php:
      php
      namespace App;

      use Illuminate\Database\Eloquent\Model;

      class Post extends Model
      {
      protected $fillable = ['title', 'content'];
      }

      5. Использование ресурсов и макетов:
      Для более удобного и структурированного хранения кода страниц в Laravel, вы можете использовать ресурсы и макеты. Ресурсы позволяют организовать код в отдельные классы для работы с данными, а макеты позволяют определить общую структуру страницы, которая будет применяться ко всем страницам вашего сайта. Например, вы можете создать ресурс PostResource для работы с постами и макет app.blade.php для определения общей структуры страниц.

      Пример кода ресурса PostResource.php:
      php
      namespace App\Http\Resources;

      use Illuminate\Http\Resources\Json\JsonResource;

      class PostResource extends JsonResource
      {
      public function toArray($request)
      {
      return [
      'title' => $this->title,
      'content' => $this->content,
      'created_at' => $this->created_at,
      'updated_at' => $this->updated_at,
      ];
      }
      }

      Пример кода макета app.blade.php:
      html

      @yield('title')

      @yield('content')

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

    Оставить комментарий