webpack

webpack

Веб? Ну да. Пак? Ну как коробка, только запакованная.
Пикабушник
поставил 741 плюс и 150 минусов
отредактировал 3 поста
проголосовал за 9 редактирований
Награды:
За неравнодушие к судьбе Пикабу За поиск настоящего сокровища Чернопятничный поисковик С Днем рождения, Пикабу!
18К рейтинг 8 подписчиков 37 подписок 26 постов 6 в горячем

Бунд

А что если пикабу специально задумал это все, чтобы вызвать бунд, волну постов, увеличение трафика, увеличение kpi и получения премии?)

Пользуясь случаем - плюсов накидайте Штолле. Вдруг в топ попаду и реклама отключится )))

Sonata Admin для Symfony

Предисловие:

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

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

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

В моей практике, самым используемым бандлом вместе с Symfony является бандл Sonata Admin. Ссыль на мануалы актуальной версии тут.

Что такое Sonata Admin bundle?

Это такой пакет для Symfony, который позволяет очень просто создать админ-панель для практически любого проекта.

Сложными словами: пакет, который позволяет создать конфигурируемый интерфейс редактирования сущностей ORM-модели.

Пакет работает с любыми типами баз данных, совместимыми с symfony. В моей практике были работы с MySQL и PostgreSQL.

И как это работает?

Все просто. Открываем сайт с мануалом, устанавливаем, потом просто открываем /admin и вуаля, у нас пустая админка для сайта. На скрине не совсем пустая, тут еще прикручено пару вещей, но общий смысл будет понятен.

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

А если добавить еще и какой-нибудь User Bundle, например FOSUserBundle, то при входе в админку будет еще и авторизация. А так же в админке можно будет добавлять и редактировать пользователей у вас на проекте.

Кстати, в Symfony можно легко поменять любой шаблон в бандле и вставить свой логотип, например. Или вообще другое оформление, но про это как-нибудь в другой раз.

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

А что дальше?

А дальше в админку можно добавить для редактирования любую таблицу, которую вы используете на проекте.

Нужно описать таблицу в App\Entity, создать конфигурацию для админки в App\Admin, потом просто подключить все к админке в config/services.yaml

Какой ты простой, скажет читатель, все рассказал, но ничего не понятно, давай пример.

Вот и пример.

Блог

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

1) Нужно описать таблицу в App\Entity

Займемся этим. Что нам нужно для примитивной запись в блоге? Конечно же Заголовок, Контент, дата публикации и уникальный идентификатор записи, чтоб ее можно было открыть по ссылке.

Создаем Entity/News/Post.php

Прописываем нужные поля внутри. Я решил вставить скриншотами, так как здесь я не нашел возможности адекватно представить код так, чтоб все не съехалось и не превратилось в кашу.

@moderator, а не планируется функционал вставки кода в редакторе?

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

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

Нужно не забыть добавить функцию

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

Эта функция обеспечит автоматическое добавление даты создания в пост, именно в момент его создания.

Так же, описываем геттеры и сеттеры, людям, что знакомы с ООП, это все знакомо, приводить код в пример не буду. Если очень лень, многие IDE умеют генерировать все сами. Например, phpStorm предлагает целое меню того, что можно сгенерировать

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

А так же, можно создавать entity не вручную, а через команду в консоли php bin/console make:entity, которая задаст несколько вопросов про типы полей и сама все сделает - это довольно удобно, но я привык вручную, так уж вышло.

Не забудьте сделать миграцию и применить ее.
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate

2. Cоздать конфигурацию для админки в App\Admin

Создаем Admin/News/PostAdmin.php

В этом файле необходимо прописать поля для админки. Для этого есть несколько функций.

configureListFields() - размечает поля, которые должны быть отображены на главной странице, при выборе элементов для редактирования, а так же, какие туда добавить кнопки. Например, кнопка показать, редактировать, удалить и так далее.

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

configureDatagridFilters() - рассказывает админке по каким полям можно вести поиск.

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

configureFormFields() - Здесь описываются поля для страницы редактирования объекта

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

configureShowFields() - Здесь поля для отдельной страницы, которая позволяет просто посмотреть данные об объекте.

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост


3. Подключить все к админке в config/services.yaml

Открываем config/services.yaml и добавляем:

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

Вуаля, у нас все работает:

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

Можно добавлять новость

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

Ты чего, хочешь чтоб я писал текст новости в простом текстовом поле? А как же заголовки, параграфы, все такое, писать прям html разметкой чтоль? - Спросил бы читатель.

А это легко исправить, отвечу я. Есть множество редакторов, доступных в интернетах, я привык использовать ckeditor, под него есть даже специальный бандл. Устанавливаем его так, как написано в мануале, подключаем в Admin/News/PostAdmin.php и вуаля. У нас есть визуальный редактор новости.

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост

Итого, у нас есть блог, куда можно добавлять простые записи и админка для него. Я думаю, этого достаточно для описания базового функционала Sonata Admin.

Я думаю будет полезно создать серию постов про создание блога, который более подробно опишет методы работы и то как это вообще происходит постепенно. Предлагайте в комментариях, что мы будем дальше делать в нашем блоге из функционала, а я подумаю про то, в каком порядке будет полезнее и понятнее реализовывать данный проект :)

Всем спасибо, я закончил! 😌 Вот вам кот из интернетов

Sonata Admin для Symfony Symfony, Программирование, PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост
Показать полностью 15

Пикабу как эппл?

Из минусов эппл музыки я всегда считал отсутствие возможности забанить трек. Есть только "предлагать меньше", что меня не устраивает. Ну, бесит меня конкретная песня, а музыка ее все равно будет предлагать. Только реже.

Сейчас на Пикабу увидел нововведение..

Пикабу как эппл? Пикабу, Нововведение, Негодование

Куда то пропала возможность забанить тег навсегда. Полазил по настройкам всяким и Игнор-лист не нашел. @moderator, было бы удобно, чтоб "Игнор-лист" было кликабельным прям тут.

Может я слепой, может его запрятали куда, но я хочу выразить недовольство этим событием

Показать полностью 1

Про сообщество

Про сообщество PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост, Symfony

Всем привет!

Я разработчик на symfony и мне не хватает раздела про этот фреймворк на Пикабу. Почему я должен узнавать новости и всякие удобные штуки от коллег, а не листая ленту любимого Пикабу?

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

Я решил публиковать здесь свои личные заметки про то, как и что я реализую, использую, чтобы поделиться опытом с другими. Вдруг кто-то не знает про то, что знаю я.

Так же приветствую аналогичный контент от пользователей Пикабу, дабы все вместе мы смогли узнавать что-то новое и делиться своим опытом!

Вот вам кот:

Про сообщество PHP, Веб-разработка, Веб фреймворки, Кот, Длиннопост, Symfony

Кот не мой, честно взят с просторов интернета. Но он прикольный.

Показать полностью 1

Ошибочная ссылка при создании сообщества

При создании сообщества есть плашка внизу

Ошибочная ссылка при создании сообщества Багрепорты, Баг, Баг на Пикабу, Пикабу

При клике на кнопку происходит переход на ссылку https://help.pikabu.ru/article/39877, а там ошибка

Ошибочная ссылка при создании сообщества Багрепорты, Баг, Баг на Пикабу, Пикабу

Ачивки на Пикабу

Совсем забыв о том, что на Пикабу существуют ачивки, я листал ленту и вдруг прилетело уведомление, что дали очередную ачивку

Ачивки на Пикабу Пикабу, Ачивка, Не работает, Ошибка, Рукожоп

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

С сообществом понятно, я его и не создавал, на Пикабу и так хватает сообществ на любой вкус, но как же поделиться в соцсетях? Я это делаю каждый день, скидывая тонны шуток друзьям.

Ачивки на Пикабу Пикабу, Ачивка, Не работает, Ошибка, Рукожоп

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

Так-то пофиг, но обидно 🧐. Баг? Фича? Не знаю.

ЗЫ: судя по количеству баллов есть еще одна скрытая ачивка на 10 баллов.

Показать полностью 1

Добра вам, люди!

Вот сижу и думаю, а чо никто просто не пожелает добра людям? Добра вам люди!

Зачем думать, если можно пожелать самому и улыбнуть человека? :)

Добра вам, люди! Доброта, Кот, Приятное, Приятные мелочи

Кота зовут Феля. Он тоже всем желает добра!

Показать полностью 1

Теперь вы знаете куда идти, если что

Теперь вы знаете куда идти, если что
Отличная работа, все прочитано!