Урок 7. Библиотека ORM RedBeanPHP. Методы find RedBeanPHP. Часть 1

Урок 7. Библиотека ORM RedBeanPHP. Методы find RedBeanPHP. Часть 1

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1

На хабре нашел пару упоминаний про эту ORM, да и то давно и в комментариях. Недавно обнаружил, что вышла уже вторая версия. Желающим — вот ссылка на загрузку (GitHub) и на документацию

Цель этой статьи — кратко познакомить читателей с этой ORM-библиотекой.

RedBeanPHP — еще одна ORM-библиотека. Основное ее отличие от коллег, типа Propel или Doctrine, в отсутствии необходимости ручного конфигурирования объектов. Т.е. никаких xml, yml или ini-файлов. RedBenPHP на лету создает таблицы, поля и индексы. Любой объект можно связать с другим. Из БД поддерживаются MySQL, SQLite и Postgres.

Состоит библиотека из одного файла. Написана она под версию php 5.3, но по заявлению автора, должна работать и под 5.2. Для работы необходимо расширение PDO.

RedBeanPHP работает с bean’ами. Для начала вы можете просто создать bean. Это объект с публичными свойствами и типом. Тип bean’а используется для сопоставления таблице в БД и, опционально, для указания вашего класса. Bean создается таким образом:

$book = R::dispense( ‘book’ );

Теперь у нас есть пустой bean типа book. Зададим ему пару свойств:

$book->title = ‘Boost development with RedBeanPHP’;
$book->author = ‘Charles Xavier’;

И сохраним в БД:

Теперь все данные сохранены в БД. У нашего bena’а сейчас есть два свойства, в которые мы записали строковые данные, поэтому RedBeanPHP выбрал тип VARCHAR(255) для этих свойств. Если бы мы решили сохранить число в одном из свойств ($book->price = 100), то RedBeanPHP выбрал бы тип TINYINT(3) для хранения этого свойства. Если потом нам надо будет сохранить дробную цену, то RedBeanPHP на лету поменяет тип поля в БД.

Для загрузки из БД используется метод R::load()

$book = R::load(‘book’, $id);
$books = R::batch(‘book’,array($id1,$id2));

Удаление из БД делается так:

// одна запись
R::trash( $book );
// все записи
R::wipe( ‘book’ );

Для поиска используется метод R::find()

$needles = R::find(‘needle’,’ haystack = ?’, array( $haystack ));

find() принимает три аргумента: тип bean’а, SQL-запрос и массив значений, которые будут подставлены вместо знаков вопросов во втором аргументе. Вместо знаков вопроса можно использовать именованные параметры:

$needles = R::find(‘needle’,’ haystack = :haystack
ORDER BY :sortorder’,
array( ‘sortorder’=>$sortorder, ‘:haystack’=>$haystack ));

Связи в RedBeanPHP

Свойства объектов могут сами быть объектами. RedBeanPHP позволяет сохранять связанные объекты:

$farm = R::dispense(‘building’);
$village = R::dispense(‘village’);
$farm->name = ‘farm’;
$village->name = ‘Dusty Mountains’;
$farm->village = $village; //assign farm to village
$ >

$farm = R::load(‘building’,$id);
echo $farm->village->name; //prints ‘Dusty Mountains’

Связывать можно и сразу несколько bean’ов:

list($mill,$tavern) = R::dispense(‘building’,2);
$village->ownBuilding = array($mill,$tavern);

Если вы сохраните $village и снова загрузите из БД, то в свойстве ownBuilding обнаружите связанные bean’ы. Имя свойства должно совпадать с хранимыми в нём bean’ами. Для удаления связи используется unset(). Связанные bean’ы можно изменять прямо из родительского объекта:

$village->ownBuilding[1]->name = ‘The Old Inn’;

Для доступа к хранимым bean’ам в качестве ключа массива необходимо использовать ID хранимых в нем bean’ов.

По умолчанию RedBeanPHP работает в свободном режиме, в котором схема БД меняется в зависимости от кода, который с ней работает. Этот режим отлично подходит для разработки. В это время вам не надо заботиться о БД. После окончания разработки нужно выполнить команду freeze().

R::freeze( true ); //will freeze redbeanphp

Эта команда отключит в RedBeanPHP проверку схемы данных, что увеличит скорость работы.

Еще, на мой взгляд, полезная вещь — это импорт bean’ов из массивов по ключам, например:

Но валидации при этом не происходит.

Эта статья по сути — вольный перевод нескольких разделов мануала по RedBeanPHP.

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

Создание Собственного Фреймворка. Orm Библиотека Redbeanphp. Урок 7. Webformyself 32:31 HD

26.12.2020 11:03 2020-12-26T08:03:34.000Z

Описание:

Премиум уроки по созданию сайта: https://webformyself.com/category/premium/

Продолжим создание собственного PHP фреймворка. По итогу мы должны получить вполне функциональное решение, а заодно познакомиться с принципами работы современных PHP фреймворков. В этом уроке мы познакомимся с мощной ORM библиотекой RedBeanPHP, которая предоставляет нам готовый набор методов для работы с БД.

В видео версии урока вы найдете ответы на такие вопросы:

• Что такое ORM?
• Как подключить библиотеку RedBeanPHP и настроить соединение с БД?
• Основные методы CRUD библиотеки RedBeanPHP.

Создание собственного фреймворка. ORM библиотека RedBeanPHP. Урок 7

Просмотров: 10 872

26 декабря 2020

Дмитрий Белик

прежде всего — огромное спасибо автору за его труд!
и вопрос к сообществу: кто-нибудь ещё работал с rb-postgres?
если «да», может поделитесь — как решили вопрос с автоматическим созданием таблицы? у меня не получилось. пришлось создавать врукопашную. 🙁

Oh ! Why you need to know it ?

Замечательный курс, спасибо за материал)

Рома Самойленко

Bahram Atahanov

Андрей пожалуйста можете прикрепить исходные файлы, у меня не найдется test.php, уже 2 дня сижу с этим, не могу найти ошибку ((

Yao Kouassi jean-claude

СУПЕРР!! Просто спасибо огромное Андрей

Владимир Кулаксизов

Друзья, подскажите, как сделать что бы таблица создавалась с полями в кодировке utf8mb4_general_ci а не utf8mb4_unicode_520_ci

Людвиг Аристархович

Офигеть. Чего только не придумали. А я всё по старинке, сам . 🙁

Павел Чалов

А после подключения RedBeanPHP нам всё ещё нужна модель? Надеюсь, что она нужна будет не только для тех штук, что мы сейчас через эту ORM библиотеку делаем, а то руки так и тянутся к бритве Оккама.

Wendelin Gerein

Благодарю тебя Андрей за твой вклад 😉

Василий Трусов

почему не заносится в базу русский шрифт?

KiIIerJo

Приветствую! После просмотра вашего замечательного видео, остался вопрос. как устранить при рефреше (f5) дублирование записи в БД?!

Sergey Kofanov

Почему не создается таблица с подчеркиванием например sub_category?

Дмитрий Петрик

Здравствуйте, Андрей!
Вам не кажется что такое подключение библиотеки RedBeanPHP уводит нас в сторону от паттерна MVC? По факту модель (в классическом её понимании) становится не нужна, т.к. работа с БД идет в контроллерах через методы RedBeanPHP. Возможно, стоит методы RedBeanPHP обернуть в методы нашей модели? Или базовый класс модели наследовать от R класса?

Kirill Lyulyaev

Как можно подключить РедБин через неймспейсы, чтобы была подключался автоматически, через класс автолоадер, написанный Вами ранее?

Kirill Lyulyaev

Добрый день, благодарю за интересное видео по знакомству с библиотекой RedBean.
Возник следующий вопрос, после скачивания библиотеки, закинул её в папку библиотек, PhpStorm проидексировал данный файл, после чего вижу:

Топ-пост этого месяца:  Мини-форма выгрузки файлов AJAX

74 errors found
544 warnings found
346 weak warnings found
637 typos found

Конечно множество ошибок это ошибки Dockera, Вас не смущает такое количество ошибок?

Upyr_921

Здравствуйте. В данном уроке при выставленном и НЕ закоментированном R::freeze (true); У вас, да и у меня тоже, совершенно спокойно получается удалять и обновлять данные в БД. Как такое получается? Спасибо!

Spoki Mo

Спасибо за уроки, очень помогли! Продолжайте в том же духе, Москва не сразу строилась)

Web World

Ах, да! Забыл сказать. Переменная $options не определенна, и при подключении к rb она не требуется

Использовать ли orm redbean?

Добавление строки в таблицу book в redbean более наглядно — «присвоил свойства и сохранил», потрясающе.

В случае использования обычного mysql класса [РЕЦЕПТ] Класс для работы с БД
всё выглядит более сложно.

15.06.2020, 15:53

Не подключается RedBean
Здравствуйте, тут такое дело, на моем локальном сервере ( openserver ) подключение библиотеки.

Аналог запроса на RedBean
Здравствуйте. Подскажите пожалуйста, как можно реализовать данный метод на обычном PDO? без.

Как создать связи между таблицами и вывести их RedBean
Доброго времени суток, форумчане. Прошу Вас оказать помощь, объясните мне, на примере: Имеется БД.

15.06.2020, 17:28 2

Решение

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

Урок 1. Библиотека ORM RedBeanPHP. Установка ORM RedBeanPHP

Смотреть видео Урок 1. Библиотека ORM RedBeanPHP. Установка ORM RedBeanPHP на v4k бесплатно

41 | 4
WebForMySelf | 1 год.

Полный Премиум курс «Библиотека ORM – RedBeanPHP» смотрите тут: https://webformyself.com/category/premium/php-premium/redbeanphp-premium/

В первом уроке предлагаемого курса мы познакомимся с библиотекой ORM RedBeanPHP, узнаем о понятии ORM, а также о других вариантах подобных библиотек для PHP.

Также мы рассмотрим два варианта установки RedBeanPHP – скачивание и установка вручную, а также установка и подключение в качестве пакета Composer.

Создание собственного фреймворка. ORM библиотека RedBeanPHP. Урок 7

Просмотров: 10 872

26 декабря 2020

Дмитрий Белик

прежде всего — огромное спасибо автору за его труд!
и вопрос к сообществу: кто-нибудь ещё работал с rb-postgres?
если «да», может поделитесь — как решили вопрос с автоматическим созданием таблицы? у меня не получилось. пришлось создавать врукопашную. 🙁

Oh ! Why you need to know it ?

Замечательный курс, спасибо за материал)

Рома Самойленко

Bahram Atahanov

Андрей пожалуйста можете прикрепить исходные файлы, у меня не найдется test.php, уже 2 дня сижу с этим, не могу найти ошибку ((

Yao Kouassi jean-claude

СУПЕРР!! Просто спасибо огромное Андрей

Владимир Кулаксизов

Друзья, подскажите, как сделать что бы таблица создавалась с полями в кодировке utf8mb4_general_ci а не utf8mb4_unicode_520_ci

Людвиг Аристархович

Офигеть. Чего только не придумали. А я всё по старинке, сам . 🙁

Павел Чалов

А после подключения RedBeanPHP нам всё ещё нужна модель? Надеюсь, что она нужна будет не только для тех штук, что мы сейчас через эту ORM библиотеку делаем, а то руки так и тянутся к бритве Оккама.

Wendelin Gerein

Благодарю тебя Андрей за твой вклад 😉

Василий Трусов

почему не заносится в базу русский шрифт?

KiIIerJo

Приветствую! После просмотра вашего замечательного видео, остался вопрос. как устранить при рефреше (f5) дублирование записи в БД?!

Sergey Kofanov

Почему не создается таблица с подчеркиванием например sub_category?

Дмитрий Петрик

Здравствуйте, Андрей!
Вам не кажется что такое подключение библиотеки RedBeanPHP уводит нас в сторону от паттерна MVC? По факту модель (в классическом её понимании) становится не нужна, т.к. работа с БД идет в контроллерах через методы RedBeanPHP. Возможно, стоит методы RedBeanPHP обернуть в методы нашей модели? Или базовый класс модели наследовать от R класса?

Kirill Lyulyaev

Как можно подключить РедБин через неймспейсы, чтобы была подключался автоматически, через класс автолоадер, написанный Вами ранее?

Kirill Lyulyaev

Добрый день, благодарю за интересное видео по знакомству с библиотекой RedBean.
Возник следующий вопрос, после скачивания библиотеки, закинул её в папку библиотек, PhpStorm проидексировал данный файл, после чего вижу:

74 errors found
544 warnings found
346 weak warnings found
637 typos found

Конечно множество ошибок это ошибки Dockera, Вас не смущает такое количество ошибок?

Upyr_921

Здравствуйте. В данном уроке при выставленном и НЕ закоментированном R::freeze (true); У вас, да и у меня тоже, совершенно спокойно получается удалять и обновлять данные в БД. Как такое получается? Спасибо!

Spoki Mo

Спасибо за уроки, очень помогли! Продолжайте в том же духе, Москва не сразу строилась)

Web World

Ах, да! Забыл сказать. Переменная $options не определенна, и при подключении к rb она не требуется

Создание собственного фреймворка. ORM библиотека RedBeanPHP. Урок 7

Премиум уроки по созданию сайта: https://webformyself.com/category/premium/

Продолжим создание собственного PHP фреймворка. По итогу мы должны получить вполне функциональное решение, а заодно познакомиться с принципами работы современных PHP фреймворков. В этом уроке мы познакомимся с мощной ORM библиотекой RedBeanPHP, которая предоставляет нам готовый набор методов для работы с БД.

В видео версии урока вы найдете ответы на такие вопросы:

• Что такое ORM?
• Как подключить библиотеку RedBeanPHP и настроить соединение с БД?
• Основные методы CRUD библиотеки RedBeanPHP.

Создание собственного фреймворка. ORM библиотека RedBeanPHP. Урок 7

Смотреть видео Создание собственного фреймворка. ORM библиотека RedBeanPHP. Урок 7 на ВМире бесплатно

301 | 4
WebForMySelf | 3 год.

Премиум уроки по созданию сайта: https://webformyself.com/category/premium/

Продолжим создание собственного PHP фреймворка. По итогу мы должны получить вполне функциональное решение, а заодно познакомиться с принципами работы современных PHP фреймворков. В этом уроке мы познакомимся с мощной ORM библиотекой RedBeanPHP, которая предоставляет нам готовый набор методов для работы с БД.

В видео версии урока вы найдете ответы на такие вопросы:

• Что такое ORM?
• Как подключить библиотеку RedBeanPHP и настроить соединение с БД?
• Основные методы CRUD библиотеки RedBeanPHP.

Создание собственного фреймворка. ORM библиотека RedBeanPHP. Урок 7

KOMMENTARE • 72

прежде всего — огромное спасибо автору за его труд!
и вопрос к сообществу: кто-нибудь ещё работал с rb-postgres?
если «да», может поделитесь — как решили вопрос с автоматическим созданием таблицы? у меня не получилось. пришлось создавать врукопашную. 🙁

Замечательный курс, спасибо за материал)

Ребята, помогите пожалуйста, можете отправить исходные файлы, никак не могу найти ошибку. Моя почта: [email protected]

Андрей пожалуйста можете прикрепить исходные файлы, у меня не найдется test.php, уже 2 дня сижу с этим, не могу найти ошибку ((

СУПЕРР!! Просто спасибо огромное Андрей

Друзья, подскажите, как сделать что бы таблица создавалась с полями в кодировке utf8mb4_general_ci а не utf8mb4_unicode_520_ci

Офигеть. Чего только не придумали. А я всё по старинке, сам . 🙁

А после подключения RedBeanPHP нам всё ещё нужна модель? Надеюсь, что она нужна будет не только для тех штук, что мы сейчас через эту ORM библиотеку делаем, а то руки так и тянутся к бритве Оккама.

Топ-пост этого месяца:  Как вставить ссылку внутрь статьи, чтобы автоматически добавилась миниатюра статьи

Благодарю тебя Андрей за твой вклад 😉

почему не заносится в базу русский шрифт?

Приветствую! После просмотра вашего замечательного видео, остался вопрос. как устранить при рефреше (f5) дублирование записи в БД?!

Почему не создается таблица с подчеркиванием например sub_category?

Здравствуйте, Андрей!
Вам не кажется что такое подключение библиотеки RedBeanPHP уводит нас в сторону от паттерна MVC? По факту модель (в классическом её понимании) становится не нужна, т.к. работа с БД идет в контроллерах через методы RedBeanPHP. Возможно, стоит методы RedBeanPHP обернуть в методы нашей модели? Или базовый класс модели наследовать от R класса?

Как можно подключить РедБин через неймспейсы, чтобы была подключался автоматически, через класс автолоадер, написанный Вами ранее?

Добрый день, благодарю за интересное видео по знакомству с библиотекой RedBean.
Возник следующий вопрос, после скачивания библиотеки, закинул её в папку библиотек, PhpStorm проидексировал данный файл, после чего вижу:
74 errors found
544 warnings found
346 weak warnings found
637 typos found
Конечно множество ошибок это ошибки Dockera, Вас не смущает такое количество ошибок?

Их достаточно много, посмотрите здесь (www.gajotres.net/best-available-php-orm-libraries-part-1/ и www.gajotres.net/best-available-php-orm-libraries-part-2/) возможно что-то понравится больше.

Данный ответ устроит, спасибо. Возможны Вы могли бы порекомендовать готовую библиотеку не ОРМ для работы с pdo, с готовыми методами findAll, One, Colum и т.д. Поменьше масштабами за ОРМ редбин?

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

Здравствуйте. В данном уроке при выставленном и НЕ закоментированном R::freeze (true); У вас, да и у меня тоже, совершенно спокойно получается удалять и обновлять данные в БД. Как такое получается? Спасибо!

Здравствуйте. Так и должно быть. Метод freeze запрещает изменение структуры таблицы (добавление полей, изменение типа полей и т.п.), но не запрещает работу с данными таблицы. То есть содержимое таблиц мы можем менять (добавлять, удалять или изменять), а вот структуру таблиц уже поменять не получится.

Спасибо за уроки, очень помогли! Продолжайте в том же духе, Москва не сразу строилась)

Ах, да! Забыл сказать. Переменная $options не определенна, и при подключении к rb она не требуется

Андрей, надеюсь увидите и ответите мне. Хотелось бы очень увидеть:
1) Реализация пагинации на примере вашего FM
2) Подробнее бы рассказать про шаблон, потому что не очень понятно как быть если на сайте например 20 страниц, и на 19 страницах есть сверху меню, а на 20 странице нет меню. Тут вопрос стоит от tpl файлах? Как подгружать на страницах уже готовые tpl?
3) Правильный пример обработки формы с данными, где и как должен код писаться, та же самая простая страница регистрации, можно без заморочек прям, просто показать где должна форма обрабатываться и как правильно должно обрабатываться, к какому контроллеру обращаться для обработки формы например на странице test.loc/register

Следующие один или пару уроков я посвящу ответам на вопросы. Ваши вопросы обязательно включу в видео и постараюсь ответить на них.

Здравствуйте! А когда планируется следующее видео ?

Здравствуйте. Времени, к сожалению, не хватает. Постараюсь записать в этом месяце.

Здравствуйте! Услышал в 3 уроке, что есть вероятность того, что Вы не будете продолжать данную тему ввиду малого количества просмотров и лайков. Скажу от себя! Видео замечательные! Спасибо Вам большое! Это как глоток свежего воздуха в куче мусора, которого выкладывают в интернете. Все очень понятно и интересно. А главное, что таких материалов больше нет нигде. Надеюсь на продолжение данной темы на вашем канале! Спасибо !

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

Почему вы не используете Composer и packagist.org/search/?q=orm&orderBys%5B0%5D%5Bsort%5D=favers&orderBys%5B0%5D%5Border%5D=desc? По количеству звёздочек эта ORM на 5-м месте. Скачать всегда проще, но поддерживать код в актуальном состоянии всё же лучше с Composer. Я думаю что если писать собственный фреймворк, то лучше использовать правильные подходы, тоесть применять Git и GitHub, а также Composer, хоть это немного сложнее, но зато сразу же заставляет новичков использовать правильные подходы.

Спасибо за ответ — вопросов нет 🙂 Просто понравились эти курсы:
1. Lynda.com — MVC Frameworks for Building PHP Web Applications
2. Udemy.com — Learn Top Ten PHP FrameWorks By Building Projects
Там практическое создание простых приложений, разбор возможностей, но для полной картины нехватало написание своего фреймворка — ну это очень долго.
Чем больше изучаю PHP и разные фреймворки, тем больше понимаю что нужно изучать Node.js, Express.js и MongoDB

Ого сколько всего)) Попробую ответить на вопросы как смогу.
1. У нас есть курсы по фреймворкам CakePHP, Yii2, Laravel. Практически все указанные вопросы разобраны там. Также у нас был вебинар, в котором я также пытался на пальцах рассказать о том, что такое фреймворк. Здесь я вкратце пытаюсь рассказать по каждому вопросу, которого мы касаемся в данный конкретный момент. Например, в первых уроках пишем маршрутизацию — объясняю что это такое. Возник вопрос чем отличается фреймворк от CMS — поясняю. Дошло время до сторонней библиотеки — внедрим. Ну а просто рассказывать теорию в отрыве от практики. вряд ли это будет кому-то интересно. Да и повторяться зачем?
2. Вопрос во многом холиварный. Желающие могут оценить перечисленные фреймворки по курсам выше и остановить свой выбор на лучшем на их взгляд. Если интересует мое мнения, то для меня одним из наиболее удобных (не говорю лучших, дабы не холиварить!) является CakePHP.
3. Да как-то примерно одинаково они устроены)
4. Если утрировать, то примерно также, как мы пишем наш фреймворк. так что урок за уроком, шаг за шагом и разбираем.
5. Вопрос неоднократно разбирался в ряде наших курсов и уроков. Где-то давно я даже записывал урок, в котором на практике показывал проведение sql-инъекций, чтобы был понятен принцип защиты от них. Если повторяться, то фактически достаточно не забывать экранировать данные запросов или использовать подготовленные выражения для защиты от sql-инъекций и не забывать о фильтрации пользовательских данных при выводе на экран для защиты от XSS. Собственно, это основа безопасности. Про тесты ничего не скажу, поскольку на практике никогда их не писал, как-то не сложилось.
6. Опять-таки, вопрос холиварный. То, что Вы показали по ссылке, это не более чем замер минимальных накладных расходов, проще говоря вывод Hello, world на экран. Это отнюдь не показатель, поскольку один фреймворк для этого вывода может не подключаться к БД, а другой инициализирует подключение. Соответственно, выиграет первый. но ведь на практике подключение к БД будет всегда, просто один инициализирует его при старте, а другой — когда возникнет первая необходимость. Показателем может быть лишь реальное приложение, написанное на различных фреймворках, а вот этого я не встречал.
Резюмируя. Просто теории в уроках не будет. Будет теория вкупе с практикой. в противном случае меня закидают тапками)) Возможно такой подход и является пустой тратой времени, тут уж решать аудитории, но все же я вот заглядываю в документацию, скажем по Yii2 и вижу там примерно такой же подход к обучению, что и у меня, т.е. теория разбавляется практикой)
Надеюсь ответил. Если Вы ждали некий теоретический курс без кода, тогда я наверное Вас разочарую.

Топ-пост этого месяца:  Топ плагинов jQuery. Плагин jInvertScroll

Не судите строго, но мне кажется что перед тем как писать собственный фреймворк нужно сначала разобраться и рассказать о следующих вещах:
1. Какие вопросы решают фреймворки (роутинг, MVC архитектура, работа с базой данный, формами, шаблонизация, интернационализация, авторизация, регистрация, система ролей пользователей, работа с сессиями и куками, расширение функцинала с помощью сторонних модулей и библиотек с использованием того же Composer и т. д.).
2. Обзор популярных PHP фреймворков, их достоинства и недостатки
3. Разобрать как устроены популярные PHP фреймворки и микрофреймворки и их различия в архитектуре
4. Разобрать рабочий цикл одного или нескольких фреймворков, начиная от точки входа до получения ответа пользователем
5. Полезно было бы услышать о вопросах безопасности и о том как писать тесты.
6. Эксперементы это хорошо, но ещё лучше объяснить как замерить производительность приложения (скорость работы фреймворков с тестовыми данными при разных условиях), что на это влияет, как улучшить эти показатели и как сделать что-то наподобие этого — github.com/kenjis/php-framework-benchmark.
После этого нужно понимать какими свойствами должен обладать будущий продукт и какие задачи он будет решать (скорость работы, простота, малый вес, модульность и т. д.) и после этого приступать к разработке.
Без этого написание собственного фреймворка может быть просто пустой тратой времени, ведь никто кроме вас его использовать не будет. Поэтому, вместо того чтобы писать собственных фреймворк, может быть лучше глубже изучить, а затем контрибутить в уже существующие проекты?

Есть книга Pro PHP MVC — может она чем то поможет с эксперементами. Было бы полезно собрать собственный фреймворк из отдельных модулей и разобрать их работу, например используя для этих целей независимые модули Symfony Components, которые уже давно используются в различных популярных платформах (Laravel, Drupal, Pagekit и т. д.). Наверно сейчас это считается Best Practices.

Согласен. Хотя цель данных уроков не создание хотя бы более-менее полноценного решения, а скорее некоторые эксперименты с кодом, не более)

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

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

Стоит изучать, так как она очень гибкая, быстрая и позволяет создавать любые типы сайтов, но как и любая другая CMS не лишена недостатков. Например, вот сборка интернет-магазина на базе UIkit, MODX Revolution, Shopkeeper и других платных и бесплатных дополнений — 918695.doskadpk.web.hosting-test.net. Программировать пришлось очень мало, так как ещё раз повторюсь, что она очень гибкая.

Работал немного с MODX достаточно давно, еще когда эта CMS только вышла, поэтому особого опыта работы нет и что-то советовать права не имею. Но, судя по прочтенным отзывам в сети, складывается впечатление, что MODX заслуживает внимания.

День добрый, Андрей.
Такой вопрос. Я, на основе ваших видео, пишу своё ядро фреймворка, и пытаюсь кое-какие моменты реализовывать сразу под себя. Так вот (сейчас на 4 уроке, поэтому, возможно, просмотров у вас меньше в последних видео), в некоторых функциях вы заменяете слеши «/» на «\». А если использовать предопределённую константу «DIRECTORY_SEPARATOR»? Есть ли какие-то подводные камни в отношении её?

Т.е. проблема была все же в пути)
Пожалуйста 😉

Ну наконец-то! Методом проб, получилось, в шаблоне прописал адрес к скрипту: «../theme/bootstrap/css/bootstrap.min.css», и всё запрацювало. Значит всё чётко было выполнено. Можно идти дальше. Спасибо, Андрей.

Всё может быть. Спасибо за ответ, Андрей. Единственно, что смущает, почему на одном хостинге всё работает корректно?
Буду искать, шаг за шагом.

Создание собственного фреймворка. ORM библиотека RedBeanPHP. Урок 7

Просмотров: 10 872

26 декабря 2020

Дмитрий Белик

прежде всего — огромное спасибо автору за его труд!
и вопрос к сообществу: кто-нибудь ещё работал с rb-postgres?
если «да», может поделитесь — как решили вопрос с автоматическим созданием таблицы? у меня не получилось. пришлось создавать врукопашную. 🙁

Oh ! Why you need to know it ?

Замечательный курс, спасибо за материал)

Рома Самойленко

Bahram Atahanov

Андрей пожалуйста можете прикрепить исходные файлы, у меня не найдется test.php, уже 2 дня сижу с этим, не могу найти ошибку ((

Yao Kouassi jean-claude

СУПЕРР!! Просто спасибо огромное Андрей

Владимир Кулаксизов

Друзья, подскажите, как сделать что бы таблица создавалась с полями в кодировке utf8mb4_general_ci а не utf8mb4_unicode_520_ci

Людвиг Аристархович

Офигеть. Чего только не придумали. А я всё по старинке, сам . 🙁

Павел Чалов

А после подключения RedBeanPHP нам всё ещё нужна модель? Надеюсь, что она нужна будет не только для тех штук, что мы сейчас через эту ORM библиотеку делаем, а то руки так и тянутся к бритве Оккама.

Wendelin Gerein

Благодарю тебя Андрей за твой вклад 😉

Василий Трусов

почему не заносится в базу русский шрифт?

KiIIerJo

Приветствую! После просмотра вашего замечательного видео, остался вопрос. как устранить при рефреше (f5) дублирование записи в БД?!

Sergey Kofanov

Почему не создается таблица с подчеркиванием например sub_category?

Дмитрий Петрик

Здравствуйте, Андрей!
Вам не кажется что такое подключение библиотеки RedBeanPHP уводит нас в сторону от паттерна MVC? По факту модель (в классическом её понимании) становится не нужна, т.к. работа с БД идет в контроллерах через методы RedBeanPHP. Возможно, стоит методы RedBeanPHP обернуть в методы нашей модели? Или базовый класс модели наследовать от R класса?

Kirill Lyulyaev

Как можно подключить РедБин через неймспейсы, чтобы была подключался автоматически, через класс автолоадер, написанный Вами ранее?

Kirill Lyulyaev

Добрый день, благодарю за интересное видео по знакомству с библиотекой RedBean.
Возник следующий вопрос, после скачивания библиотеки, закинул её в папку библиотек, PhpStorm проидексировал данный файл, после чего вижу:

74 errors found
544 warnings found
346 weak warnings found
637 typos found

Конечно множество ошибок это ошибки Dockera, Вас не смущает такое количество ошибок?

Upyr_921

Здравствуйте. В данном уроке при выставленном и НЕ закоментированном R::freeze (true); У вас, да и у меня тоже, совершенно спокойно получается удалять и обновлять данные в БД. Как такое получается? Спасибо!

Spoki Mo

Спасибо за уроки, очень помогли! Продолжайте в том же духе, Москва не сразу строилась)

Web World

Ах, да! Забыл сказать. Переменная $options не определенна, и при подключении к rb она не требуется

Добавить комментарий