В этой статье мы рассмотрим PDO CRUD — конструктор форм и инструмент управления базами данных . PDO CRUD помогает создавать формы для таблиц базы данных с помощью всего лишь нескольких строк кода, что позволяет быстро и легко загрузить приложение базы данных.
Существует множество расширений для абстракции базы данных и, в частности, для генерации CRUD (создание, чтение, обновление и удаление) для PHP и MySQL. И, конечно же, вы также найдете коммерческие опции, которые предоставляют готовые к использованию функции и расширенную поддержку. В случае коммерческих опций вы также можете ожидать качественный код, исправления ошибок и новые улучшения.
Сегодня мы собираемся обсудить инструмент PDO CRUD , который можно приобрести в CodeCanyon по очень разумной цене. Это полный инструмент для построения CRUD, который позволяет создавать приложения, просто предоставляя таблицы базы данных и написав несколько строк кода.
Он работает с несколькими базами данных, включая MySQL, Postgres и SQLite. В этой статье мы увидим, как использовать PDO CRUD для построения системы CRUD с базой данных MySQL.
Установка и настройка
В этом разделе мы увидим, как установить и настроить инструмент PDO CRUD после того, как вы приобрели его и загрузили с CodeCanyon.
Как только вы купите его, вы сможете скачать zip-файл. Распакуйте его, и вы найдете каталог с основным кодом плагина: PDOCrud / script . Скопируйте этот каталог в ваше PHP-приложение.
Например, если ваш проект настроен на / web / demo-app / public_html , вы должны скопировать каталог скриптов в / web / demo-app / public_html / script .
Затем вам нужно ввести данные вашей базы данных в файл конфигурации. Файл конфигурации находится по адресу /web/demo-app/public_html/script/config/config.php . Откройте этот файл в вашем любимом текстовом редакторе и измените следующие сведения в этом файле.
01
02
03
04
05
06
07
08
09
10
11
12
|
$config[«script_url»] = «https://my-demo-app»;
/************************ database ************************/
//Set the host name to connect for database
$config[«hostname»] = «localhost»;
//Set the database name
$config[«database»] = «demo_app_db»;
//Set the username for database access
$config[«username»] = «demo_app»;
//Set the pwd for the database user
$config[«password»] = «demo_app»;
//Set the database type to be used
$config[«dbtype»] = «mysql»
|
Как видите, детали говорят сами за себя. В $config["script_url"]
URL-адрес, который вы используете для доступа к своему сайту.
Как только вы сохранили детали базы данных, вы готовы использовать инструмент PDO CRUD. В нашем примере мы создадим две таблицы MySQL, которые содержат данные о сотрудниках и отделах.
- сотрудники : содержит информацию о сотрудниках
- отдел : содержит информацию об отделе
Откройте инструмент управления базой данных и выполните следующие команды для создания таблиц, как мы только что обсуждали выше. Я использую PhpMyAdmin для работы с базой данных MySQL.
Во-первых, давайте создадим таблицу отдела.
1
2
3
4
|
CREATE TABLE `department` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`department_name` varchar(255) NOT NULL DEFAULT »
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
Далее мы создадим таблицу сотрудников.
1
2
3
4
5
6
7
8
|
CREATE TABLE `employee` (
`id` int(12) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`dept_id` int(11) UNSIGNED NOT NULL,
`first_name` varchar(255) NOT NULL DEFAULT »,
`last_name` varchar(255) NOT NULL DEFAULT »,
`email` varchar(255) NOT NULL DEFAULT »,
`phone` varchar(255) NOT NULL DEFAULT »
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
Как вы можете видеть, мы использовали столбец dept_id
в таблице сотрудников, который содержит идентификатор соответствующего отдела, хранящийся в таблице отделов.
Как только вы создали таблицы в своей базе данных, мы готовы создать интерфейс приложения CRUD с помощью инструмента PDO CRUD!
Как настроить базовый CRUD
В этом разделе мы увидим, как вы можете настроить базовый интерфейс CRUD с помощью инструмента PDO CRUD, написав всего несколько строк кода.
Стол отдела
Начнем со стола отдела.
Давайте создадим Department.php со следующим содержимым. Если корнем вашего документа является / web / demo-app / public_html / , создайте файл Department.php по адресу /web/demo-app/public_html/department.php . Напомним, что мы уже скопировали каталог скриптов в / web / demo-app / public_html / script .
1
2
3
4
5
|
<?php
require_once «script/pdocrud.php»;
$pdocrud = new PDOCrud();
echo $pdocrud->dbTable(«department»)->render();
|
И теперь, если вы укажете свой браузер на файл Department.php, вы должны увидеть что-то вроде этого:
Уф! Имея всего две строки кода, вы получаете готовый к использованию пользовательский интерфейс CRUD, который позволяет вам выполнять все необходимые действия по созданию, чтению, обновлению и удалению вашей модели. Не говоря уже о том, что само представление списка по умолчанию содержит множество функций, в том числе:
- поиск
- встроенная нумерация страниц
- Распечатать
- экспортировать записи в формат CSV, PDF или Excel
- операция массового удаления
- сортировка по столбцам
Нажмите на кнопку « Добавить» справа, и она откроет форму для добавления записи отдела.
Давайте добавим несколько записей с помощью кнопки Добавить и посмотрим, как это выглядит.
Как видите, это довольно легкий и аккуратный интерфейс. Почти без усилий мы создали CRUD для модели отдела! Далее мы увидим, как сделать то же самое для таблицы сотрудника.
Таблица сотрудников
В этом разделе мы увидим, как построить CRUD для таблицы сотрудников. Давайте создадим employee.php со следующим содержимым.
1
2
3
4
5
|
<?php
require_once «script/pdocrud.php»;
$pdocrud = new PDOCrud();
echo $pdocrud->dbTable(«employee»)->render();
|
Это в значительной степени тот же код, что и в прошлый раз; нам просто нужно изменить имя таблицы. Если вы нажмете кнопку « Добавить» , вы также получите красивую форму, которая позволит вам добавить запись сотрудника.
Возможно, вы заметили одну проблему: поле Dept id представляет собой текстовое поле, но было бы лучше в качестве раскрывающегося списка, содержащего названия отделов. Посмотрим, как этого добиться.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?php
require_once «script/pdocrud.php»;
$pdocrud = new PDOCrud();
// get departments
$data = $pdocrud->getPDOModelObj()->select(«department»);
$options = array();
foreach($data as $record) {
$options[$record[‘id’]] = $record[‘department_name’];
}
// change the type of the dept_id field from textfield to select dropdown
$pdocrud->fieldTypes(«dept_id», «select»);
$pdocrud->fieldDataBinding(«dept_id», $options, «», «»,»array»);
echo $pdocrud->dbTable(«employee»)->render();
|
В этом коде мы получили доступ к таблице отделов через PDO CRUD, чтобы связать название отдела с идентификаторами отделов. Затем мы обновили параметры привязки для поля идентификатора отдела, чтобы оно отображалось в виде раскрывающегося списка.
Теперь нажмите на кнопку Добавить , чтобы увидеть, как это выглядит! Вы должны увидеть, что поле Dept Id теперь превращается в выпадающий список!
Давайте добавим несколько записей о сотрудниках и посмотрим, как выглядит список сотрудников:
Это выглядит красиво! Но у нас есть еще одна небольшая проблема: вы можете видеть, что столбец Dept id показывает идентификатор отдела, и было бы неплохо вместо этого отобразить фактическое название отдела. Давайте узнаем, как этого добиться!
Давайте пересмотрим код employee.php со следующим содержанием.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
<?php
require_once «script/pdocrud.php»;
$pdocrud = new PDOCrud();
// change the type of the dept_id field from textfield to select dropdown
$data = $pdocrud->getPDOModelObj()->select(«department»);
$options = array();
foreach($data as $record) {
$options[$record[‘id’]] = $record[‘department_name’];
}
$pdocrud->fieldTypes(«dept_id», «select»);
$pdocrud->fieldDataBinding(«dept_id», $options, «», «»,»array»);
$pdocrud->crudTableCol(array(«first_name»,»last_name», «department_name», «email»,»phone»));
$pdocrud->joinTable(«department», «employee.dept_id = department.id», «INNER JOIN»);
echo $pdocrud->dbTable(«employee»)->render();
|
Здесь мы создали соединение между таблицами сотрудников и отделов с помощью $pdocrud->joinTable
, а затем приказали PDO CRUD отображать только имя сотрудника, название отдела и контактную информацию с помощью $pdocrud->crudTableCol
.
И с этим изменением список сотрудников должен выглядеть следующим образом:
Как вы можете видеть, скрипт PDO CRUD довольно гибок и позволяет вам использовать любую возможность для настройки вашего пользовательского интерфейса.
До сих пор мы обсуждали, как настроить базовый интерфейс CRUD. В следующем разделе мы увидим еще несколько параметров, которые вы могли бы использовать для улучшения и настройки пользовательского интерфейса CRUD.
Параметры настройки
В этом разделе мы увидим несколько параметров настройки, предоставляемых инструментом PDO CRUD. Конечно, невозможно просмотреть все параметры, поскольку инструмент PDO CRUD предоставляет гораздо больше, чем мы могли бы охватить в одной статье, но я постараюсь выделить пару важных.
Встроенный Редактировать
Встроенное редактирование — одна из самых важных функций, позволяющая быстро редактировать запись на самой странице листинга. Давайте посмотрим, как включить его на странице списка отдела.
Давайте пересмотрим скрипт отдела.php, как показано в следующем фрагменте.
1
2
3
4
5
6
|
<?php
require_once «script/pdocrud.php»;
$pdocrud = new PDOCrud();
$pdocrud->setSettings(«inlineEditbtn», true);
echo $pdocrud->dbTable(«department»)->render();
|
Как вы можете видеть, мы только что inlineEditbtn
настройку inlineEditbtn
, и функция встроенного редактирования уже здесь!
Это действительно удобная функция, которая позволяет редактировать записи на лету!
фильтры
Как вы могли заметить, на странице списка отделов уже есть свободный текстовый поиск для фильтрации записей. Тем не менее, вы можете добавить свои собственные фильтры для улучшения функции поиска. Именно это и обеспечивает опция « Фильтры», поскольку она позволяет создавать собственные фильтры!
Мы будем использовать employee.php для этой функции, поскольку это идеальный демонстрационный вариант использования. На странице списка сотрудников мы отображаем название отдела для каждой записи сотрудника, поэтому давайте создадим фильтр отдела, который позволяет фильтровать записи по названию отдела.
Перейдите и исправьте файл employee.php, как показано в следующем фрагменте.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
|
<?php
require_once «script/pdocrud.php»;
$pdocrud = new PDOCrud();
$data = $pdocrud->getPDOModelObj()->select(«department»);
$options = array();
foreach($data as $record) {
$options[$record[‘id’]] = $record[‘department_name’];
}
$pdocrud->fieldTypes(«dept_id», «select»);//change state to select dropdown
$pdocrud->fieldDataBinding(«dept_id», $options, «», «»,»array»);//add data using array in select dropdown
$pdocrud->crudTableCol(array(«first_name»,»last_name», «department_name», «email»,»phone»));
$pdocrud->joinTable(«department», «employee.dept_id = department.id», «INNER JOIN»);
$pdocrud->addFilter(«department_filter», «Department», «dept_id», «dropdown»);
$pdocrud->setFilterSource(«department_filter», $options, «», «», «array»);
echo $pdocrud->dbTable(«employee»)->render();
|
Мы только что добавили две строки, с вызовами addFilter
и addFilter
, и с этим список сотрудников выглядит следующим образом:
Разве это не круто? Всего двумя строками кода вы добавили свой собственный фильтр!
Загрузка изображений
Это обязательная функция, если вы хотите настроить загрузку файлов в ваших формах. Всего одной строкой кода вы можете преобразовать обычное поле в поле загрузки файла, как показано в следующем фрагменте.
Я предполагаю, что у вас есть поле profile_image
в вашей таблице сотрудников, и что вы готовы преобразовать его в поле загрузки файла!
1
2
3
4
5
6
|
<?php
require_once «script/pdocrud.php»;
$pdocrud = new PDOCrud();
$pdocrud->fieldTypes(«profile_image», «image»);
echo $pdocrud->dbTable(«employee»)->render();
|
Это оно! Теперь пользователи смогут загружать изображение в поле profile_image
.
CAPTCHA,
В настоящее время, если вы хотите сохранить свой сайт от спама, проверка CAPTCHA является важной функцией. Инструмент PDO CRUD уже предоставляет несколько вариантов на выбор.
Он предоставляет две опции: CAPTCHA и ReCAPTCHA. Если вы выбираете опцию CAPTCHA, она представляет математическую головоломку, которую пользователь должен решить. С другой стороны, если вы выберете опцию ReCAPTCHA, она представит знаменитую головоломку « Я не робот» !
Если вы хотите добавить простую загадку CAPTCHA, вам нужно добавить следующую строку перед тем, как рендерить CRUD.
1
|
$pdocrud->formAddCaptcha(«captcha»);
|
С другой стороны, если вы предпочитаете ReCAPTCHA, вы можете добиться того же, используя следующий фрагмент.
1
|
$pdocrud->recaptcha(«your-site-key»,»site-secret»);
|
Вам просто нужно заменить аргументы your-site-key
и site-secret
на действительные учетные данные Google.
До сих пор мы обсуждали варианты, которые улучшают функциональность вашего приложения. Далее мы увидим, как вы можете изменить скин и, таким образом, внешний вид вашего приложения.
Скины
Если вам не нравится скин по умолчанию, у вас есть несколько вариантов на выбор. Инструмент PDO CRUD предоставляет темные, светлые, зеленые и расширенные скины в качестве других опций на выбор.
Например, следующий список основан на зеленой теме.
Это выглядит красиво, не так ли?
Чистая Бутстрап
Хотя обложка по умолчанию уже поддерживает адаптивные макеты, инструмент PDO CRUD также поддерживает интеграцию с Bootstrap!
Вам нужно использовать следующий фрагмент, если вы хотите построить макет с помощью библиотеки Bootstrap.
1
2
3
4
5
|
<?php
require_once «script/pdocrud.php»;
$pdocrud = new PDOCrud(false, «pure», «pure»);
echo $pdocrud->dbTable(«department»)->render();
|
И вот как это выглядит:
Вывод
Сегодня мы рассмотрели усовершенствованный построитель форм базы данных PDO CRUD и инструмент управления данными, доступные на CodeCanyon. Это инструмент построения интерфейса приложения CRUD по своей сути. Он предоставляет множество вариантов настройки, охватывающих практически все, что требуется системе CRUD.
Как я уже говорил ранее, действительно сложно охватить все, что предоставляет инструмент PDO CRUD, в одной статье, но, надеюсь, официальная документация должна дать вам некоторое представление о его всеобъемлющих функциях.
Я надеюсь, что вы уверены, что инструмент PDO CRUD достаточно мощный, чтобы удовлетворить ваши требования и позволяет избавиться от повторяющейся работы, которую вы должны выполнять каждый раз, когда вы хотите настроить CRUD в своем приложении. Хотя это коммерческий плагин, я считаю, что он по разумной цене, учитывая множество функций, которые он предоставляет.
Если у вас есть какие-либо предложения или комментарии, не стесняйтесь использовать канал ниже, и я буду рад вступить в разговор!