✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Створення CRUD-системи в WordPress – wpDataTables Tables Plugin

8

Ця стаття про створення системи CRUD в WordPress була опублікована ще в 2014 році. Але ми помітили, що ця тема стала ще більш актуальною, тому вирішили поглянути на неї по-новому.

Що таке система CRUD, як інтегрувати систему CRUD для MySQL на ваш сайт WordPress, які плюси та мінуси використання різних підходів?

Що таке система CRUD?

Абревіатура CRUD походить від Create, R read, U pdate, D delete. Що, іншими словами, означає систему управління даними. В Інтернеті це, швидше за все, означало б програмне забезпечення, яке керує записами у вашій базі даних. Зазвичай це відноситься до MySQL, PostgreSQL, MS SQL або інших двигунів БД.

Чудовим і, мабуть, найпопулярнішим прикладом системи CRUD є phpMyAdmin. PHPMyAdmin — це інструмент, який використовують майже всі веб-розробники для керування даними MySQL онлайн. Він отримав настільки широке поширення, що на даний момент його можна назвати стандартним інструментом для управління базами даних MySQL. Зараз він попередньо встановлений майже на будь-якому інструменті CPanel у хостинг-провайдерів.

Існують тисячі стандартних варіантів використання систем CRUD. Наприклад – практично будь-який каталог, журнал записів, статистична інформація. По суті, все, що стосується зберігання інформації, вимагатиме додавання, модифікації та видалення бітів інформації. Саме тоді в гру вступають системи CRUD.

Навіщо вам потрібна система CRUD у WordPress?

WordPress сам по собі є потужною CMS (системою управління вмістом), яка також є окремим випадком системи CRUD. Як ви знаєте, користувачі сайту WordPress можуть додавати публікації та сторінки, редагувати або видаляти їх. Але іноді ви стикаєтесь із ситуацією, коли вам потрібно керувати деякими даними бази даних безпосередньо з інтерфейсу WordPress, які, як правило, не публікуються чи не пов’язані зі сторінками та не вписуються в таксономії WordPress. Серед іншого це може бути одна з таких ситуацій, коли вам знадобиться незалежна система CRUD у WordPress:

  • Ви хотіли б мати засіб відстеження помилок, журнал записів або будь-який інший інструмент для введення даних на своєму сайті WordPress;
  • Або, наприклад, ви хочете дозволити деяким користувачам редагувати деякі бізнес-дані з інтерфейсу вашого сайту, не надаючи їм доступу до панелі адміністратора сайту WordPress, або, можливо, навіть не повідомляючи про те, що сайт працює на WordPress;
  • Іншим прикладом є вимога дозволити деяким користувачам редагувати таблицю БД. Наприклад, змінити розміщене замовлення, відредагувати деякі особисті дані тощо.

І подібні запити.

Як інтегрувати систему CRUD на сайт WordPress?

Найпростіше рішення – спробувати знайти відповідний плагін

По-перше, переконайтеся, що він вам дійсно потрібен. Багато завдань не є унікальними, і ви, ймовірно, зможете знайти плагін, який відповідатиме вашим потребам. Наприклад, якщо вам потрібен засіб відстеження помилок, як зазначено вище, ви можете перевірити та завантажити цей або цей.

А якщо вам потрібно щось більш загальне, як-от редагування різних таблиць MySQL з інтерфейсу WordPress, спробуйте наш плагін wpDataTables, який по суті є системою CRUD у WordPress. Ви можете переглянути список функцій і приклади того, як це працює тут. Або навіть спробуйте безкоштовну версію Lite у сховищі плагінів WordPress.

Варто зазначити, що wpDataTables не накладає жодних обмежень на структуру даних, кількість стовпців або рядків, підтримує багато типів даних і різні типи введення редактора. Наприклад, деякі конкретні типи, такі як вкладення або DateTime. Крім того, він дозволяє редагувати дані за допомогою редактора спливаючих форм, за допомогою вбудованого редактора або навіть за допомогою редактора електронних таблиць, подібного до Excel.

Якщо ви все ще вважаєте, що вам потрібно створити спеціальну систему CRUD у WordPress, вам слід підготуватися до серйозного кодування, щоб це зробити.

Запустіть новий плагін WordPress

Якщо ви вважаєте, що жоден плагін не відповідає вашим потребам, створіть свій власний! Можливо, це не так страшно, як здається на перший погляд. Почніть із прочитання цього гарного посібника зі створення плагіна WordPress з нуля. І, звичайно, цей у WordPress Codex.

Перший початковий крок під час створення будь-якого плагіна, включаючи систему CRUD у плагіні WordPress, — це правильно структурувати файли.
Звичайним підходом є розміщення основного файлу точки входу CRUD у кореневий каталог плагіна та підготовка кількох вкладених папок:

  • Ресурси – усі javascript, таблиці стилів, шрифти, зображення та інші статичні ресурси, які знадобляться вашій системі CRUD;
  • Source – папка для «основних» класів PHP, які виконуватимуть усі функції CRUD у серверній частині;
  • Lib – папка для будь-яких сторонніх компонентів, які ви можете використовувати у своїй системі CRUD;
  • Шаблони – папка для шаблонів HTML, які будуть інтерфейсом користувача для вашої системи CRUD.

Їх може бути більше (контролери, обробники коротких кодів та інші), але це мінімум для початку.

Створення серверної частини редактора (класи PHP)

Перш за все, вам знадобиться серверна частина: сценарій PHP, який фактично виконував би роботу CRUD. Для цього вам потрібно підключити його до БД WordPress (глобальний об’єкт $wpdb). Тут ви можете прочитати гарний посібник про використання бази даних WordPress і об’єкта $wpdb у своїх плагінах.

Якщо ви використовуєте зовнішню БД, вам потрібно буде, наприклад, використовувати окреме з’єднання PDO або просто вбудовані функції PHP MySQLi (якщо вашою системою БД є MySQL).

Ваше завдання на цьому етапі полягає в тому, щоб підготувати набір класів і методів, які прийматимуть дані з інтерфейсу в певній очікуваній формі, перевірятимуть і очищатимуть їх (дезінфікація всіх введених даних є дуже важливим заходом безпеки для всіх систем CRUD) і виконуватиме дії INSERT, UPDATE і DELETE у вашій базі даних.

Як описано в попередньому кроці, ці «основні» файли належатимуть до папки «джерело» вашого нового плагіна CRUD WordPress.

Створення зовнішнього інтерфейсу (HTML, JS, PHP)

Коли класи та методи керування базою даних будуть підготовлені, вашому плагіну знадобиться зовнішній інтерфейс для користувача з новою системою CRUD у WordPress. Найкращим рішенням буде підготувати набір шаблонів у ваших нових файлах плагінів і виводити їх у будь-якому місці за допомогою короткого коду.

Має сенс завжди зберігати шаблони HTML окремо від коду (підхід MVC) і готувати логічно розділені файли шаблонів, наприклад: «edit.tpl.php», «delete.tpl.php», «list.tpl.php».» тощо – шаблон для кожної сторінки або дії CRUD.

Тут ви можете прочитати чудову статтю Codex про WordPress Shortcode API.

З’єднайте зовнішній і внутрішній за допомогою викликів AJAX (JS)

Звичайно, ви можете зробити це в стилі старої школи, за допомогою простого надсилання форми та перезавантаження сторінки. Однак сьогодні це вже не поширений підхід. Замість цього стандартним підходом є використання AJAX через jQuery або інші бібліотеки, такі як Angular. Тож ми рекомендуємо приділити трохи часу та розглянути використання AJAX у своїх плагінах WordPress. Ось чудова стаття Codex про те, як використовувати AJAX у своїх плагінах – як для адміністратора, так і для інтерфейсу.

Ви можете помістити код JS у папку «assets», яку ви підготували на першому кроці.

Тестуйте, вдосконалюйте та виправляйте

Коли частина впровадження завершена, знайдіть час і протестуйте свою нову систему CRUD у WordPress. Ви не можете виявити всі помилки з самого початку, але багаторазове повторення рутинних дій CRUD з різними прикладами (бажано «граничні» випадки – наприклад, дуже великі обсяги даних, багаторазове натискання однієї кнопки тощо) завжди допоможе вам щоб виявити більшість помилок – а вони завжди трапляються, коли ви впроваджуєте щось нове.

CRUD vs REST: Яка різниця

REST — це архітектурний стиль побудови мережевих програм на основі протоколу зв’язку «клієнт-сервер», без збереження стану, з можливістю кешування, тобто протоколу HTTP. CRUD — це акронім від CREATE, READ, UPDATE і DELETE, основних функцій постійного зберігання в програмуванні.

Операції CRUD, тобто CREATE, READ, UPDATE, DELETE, подібні до основних команд REST, тобто GET, PUT, POST, DELETE, що призводить до плутанини між ними. Що таке CRUD? Що таке REST? Що таке визначення CRUD у CRUD проти REST? Чи є REST копією CRUD?

Це все дуже доречні питання, на які ця стаття збирається дати детальну відповідь!

Як працює REST?

Ви не можете зрозуміти такі терміни, як REST API, REST-сервіси, CRUD-матриця, або CRUD-база даних, або REST-програмування, якщо ви не розумієте різницю між двома процесами щодо того, як вони працюють. Плутанина зникне, коли ви дізнаєтеся цю різницю.

Ви можете працювати з REST на будь-якому ресурсі, будь то медіафайл, документ, веб-сайт тощо. Немає обмежень щодо того, над чим можна працювати з REST; ви можете використовувати HTML лише як протокол зв’язку для вказівки на ресурси. REST означає Representational State Transfer.

REST вказує на те, що кожна відмітна URL-адреса представляє певний об’єкт, до якого можна отримати через HTTP GET, а також змінити та видалити його за допомогою HTTP POST, PUT або DELETE.

Як працює CRUD?

Ви можете застосовувати CRUD лише до записів бази даних і не можете створювати CRUD API, як ви створюєте REST API. Програма CRUD обмежена базами даних, тому CRUD, на відміну від REST, є не стилем архітектури, а циклом. Усі програми та веб-сайти містять різні цикли CRUD.

Наприклад, відвідувач веб-сайту електронної комерції може СТВОРИТИ обліковий запис, ОНОВИТИ обліковий запис, ПРОЧИТАТИ інформацію та ВИДАЛИТИ обліковий запис. Це повний цикл CRUD, який включає кожну операцію CRUD.

Наприклад, на тому самому веб-сайті електронної комерції відвідувач може СТВОРИТИ товар в електронному кошику, а потім завершити повний цикл CRUD, ЧИТАННЯ, ОНОВЛЕННЯ та навіть ВИДАЛЕННЯ товару.

Основи та принципи REST

Основні команди Representational State Transfer – абревіатура REST – обертаються навколо об’єкта або ресурсу, який можна описати як будь-що, що ви можете відкрити за допомогою протоколу HTTP. Приклади ресурсів REST: зображення, веб-сайт, документ, сервіс. Небо це межа.

REST — це інтерфейс прикладного програмування, або API, або архітектура, призначена для розподіленого мультимедіа. API — це веб-сервіс, який відповідає принципам архітектури REST. Таким чином, REST викликає кожен API за допомогою одного з методів запиту HTTP GET, PUT, POST і DELETE.

Шість керівних принципів архітектури RESTful

  1. Мандат клієнт-сервер

Мандат клієнт-сервер підкреслює той факт, що REST представляє розподілений метод, який спирається на природу поділу клієнт-сервер. Служба REST передбачає кілька можливостей і відповідає за запити. Клієнт робить запити, а сервер їх приймає або відхиляє.

  1. Безгромадянство

Створення CRUD-системи в WordPress - wpDataTables Tables Plugin

Відсутність громадянства обмежує тип запитів, які можна надсилати між споживачем і сервером. По суті, саме запит ініціює зв’язок між клієнтом і службою, де запит містить кожну інформацію, необхідну серверу для відповіді.

  1. Кешування

Мета кешування запиту полягає в тому, щоб ніколи не надсилати один і той самий запит двічі, тому що кешування наказує серверу позначати відповіді як кешовані чи ні. У результаті кешування зменшує обмеження, породжені відсутністю громадянства.

  1. Уніфікований договір

Уніфікований контракт виключає використання кількох незалежних інтерфейсів усередині інтерфейсу прикладного програмування або API. REST дотримується принципів уніфікованого контракту. Таким чином, один інтерфейс REST спільно використовується через гіпермедійні підключення.

  1. Багатошарова система

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

  1. Додатково: код на вимогу

Хоча клієнт-сервер, кешування, відсутність громадянства, уніфікований контракт і багаторівнева система є обов’язковими для програм RESTful, код на вимогу не є обов’язковим. Однак Code-on-Demand дозволяє логіці клієнтів залишатися незалежною та, отже, оновлюватись окремо від логіки сервера.

Кінець думкам про CRUD проти REST

CRUD передбачає основні операції, що виконуються в статичних сховищах даних або базах даних, наприклад обробка пасивних записів або об’єктів. CRUD по суті маніпулює основними даними.

REST покладається на представлення ресурсів за допомогою унікальних URL-адрес, де ресурси є абстракціями об’єктів, де коментар користувача може бути ресурсом, наприклад.

Таким чином, REST передбачає більше, ніж запис у таблиці коментарів. REST стосується зв’язку запису з ресурсом користувача та дописом/коментарем, до якого він прикріплений. REST — це стиль API дуже високого рівня, який взаємодіє зі складною системою.


Звичайно, ця стаття не була повним підручником, оскільки для написання однієї знадобилося б двадцять сторінок. Але повідомте нам, якщо у вас виникнуть запитання або ви хочете побачити конкретний покроковий приклад, і ми створимо його для вас.

Сподіваємось, це було чимось корисним.

Дякую за читання!

Джерело фото: http://www.tyseo.net

Джерело запису: wpdatatables.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі