Что такое CRUD-операции
Разница между REST и CRUD
Я узнал REST, и он очень похож на CRUD (из того, что я прочитал о CRUD).
Я знаю, что они разные, и мне интересно, думают ли они, что они похожи, я их не понимаю.
Является ли это, что REST является «надмножеством» CRUD? Делает ли все CRUD и многое другое?
6 ответов
Удивительно, но я не вижу в других ответах, что я считаю реальной разницей между REST и CRUD: что каждый управляет.
CRUD означает основные операции, выполняемые в репозитории данных. Вы напрямую обрабатываете записи или объекты данных; кроме этих операций, записи являются пассивными объектами. Обычно это просто таблицы и записи базы данных.
REST, с другой стороны, работает с представлениями ресурсов, каждый из которых идентифицируется по URL-адресу. Обычно это не объекты данных, а сложные абстракции объектов.
Например, ресурс может быть комментарием пользователя. Это означает не только запись в таблице комментариев, но и ее отношения с ресурсом пользователя, к которой добавляется комментарий, может быть, еще один комментарий, на который он отвечает.
Работа с комментарием не является примитивной операцией базы данных, она может иметь значительные побочные эффекты, такие как включение оповещения на исходный плакат или пересчет некоторых игровых «точек» или обновление некоторых «потоков последователей».
Кроме того, представление ресурса включает гипертекст (проверьте принцип HATEOAS ), позволяя разработчику выражать отношения между ресурсами или направлять клиента REST в рабочий процесс операции.
Короче говоря, CRUD представляет собой набор примитивных операций (в основном для баз данных и статических хранилищ данных), в то время как REST — очень высокоуровневый API-интерфейс (в основном для веб-сервисов и других «живых» систем).
Первый манипулирует базовыми данными, другой взаимодействует со сложной системой.
Прежде всего, оба являются просто обычными инициалами; им нечего бояться.
Теперь CRUD — это простой термин, который был сокращен, потому что это обычная функция во многих приложениях, и проще сказать CRUD . Он описывает 4 основных операции, которые вы можете выполнять для данных (или ресурса). Создать, прочитать, обновить, удалить.
REST — это именованная практика (как AJAX), а не сама технология. Он поощряет использование возможностей, которые уже давно присущи протоколу HTTP, но редко используются.
Если у вас есть URL (Uniform Resource Locator ), и вы указываете на него браузер по адресной строке, вы отправляете HTTP-запрос . Каждый HTTP-запрос содержит информацию, которую сервер может использовать, чтобы узнать, какой HTTP-ответ отправить обратно клиенту, который выдал запрос.
Каждый запрос содержит URL-адрес, поэтому сервер знает, какой ресурс вы хотите получить доступ, но он также может содержать метод . Метод описывает, что делать с этим ресурсом.
Но эта концепция «метода» не использовалась очень часто.
Обычно люди просто ссылаются на страницы с помощью метода GET и выпускают any тип обновлений (удаление, вставки, обновления) с помощью метода POST.
И из-за этого вы не можете рассматривать один ресурс (URL) как истинный ресурс сам по себе. У вас должны быть отдельные URL-адреса для удаления, вставки или обновления одного и того же ресурса. Например:
С помощью REST вы создаете формы умнее , потому что они используют другие методы HTTP в стороне от POST и программируют ваш сервер, чтобы иметь возможность различать методы , а не только URLS. Так, например:
Помните, что один URL-адрес описывает один ресурс. Единственный пост — это единственный ресурс. С помощью REST вы обрабатываете ресурсы так, как они предназначены для лечения. Вы сообщаете серверу, какой ресурс вы хотите обрабатывать, и как его обрабатывать.
В «RESTful architecture» есть много других функций, о которых вы можете прочитать в Википедии, других статьях или книгах, если вам интересно. С другой стороны, для самого CRUD не так уж много.
REST означает «передачу репрезентативного состояния», что означает, что все это связано с передачей и изменением состояния какого-либо ресурса в системе.
REST становится все более привлекательным, потому что теория, лежащая в основе REST, используется в средствах массовой информации, гипермедиа и базовом протоколе для управления информацией в удаленной системе.
С другой стороны, CRUD является мнемоником для общих операций, необходимых для данных в базе данных: Create Retrieve Update Delete. Но это действительно не глубже, чем это.
Итак, это ответ на ваш вопрос, но я расскажу об общей ошибке, которую я вижу, когда REST и CRUD обсуждаются вместе. Многие разработчики хотят напрямую сопоставлять REST с CRUD, поскольку REST через HTTP предоставляет GET PUT POST и DELETE, тогда как CRUD обеспечивает CREATE RETRIEVE UPDATE DELETE. Естественно хотеть отображать глаголы REST непосредственно в CRUD-операции.
Однако HTTP использует стиль «создать или обновить», в то время как CRUD отделяет создание и обновление. Это делает невозможным (!) Сделать чистое общее отображение между двумя (!)
GET и DELETE легко . GET === RETRIEVE и DELETE === DELETE.
Но по спецификации HTTP PUT на самом деле создает и обновляет:
Используйте PUT для создания совершенно нового объекта, когда вы все знаете об этом, включая его идентификатор
Используйте PUT для обновления объекта (обычно с полным представлением объекта)
POST — это «обрабатывающий» глагол и считается «добавочным» глаголом:
Используйте POST для добавления нового объекта в коллекцию, то есть создайте новый объект
POST также используется, когда ни один из других глаголов не подходит, поскольку спецификация HTTP определяет его как глагол обработки данных
Если ваша команда повесилась на POST, помните, что весь WWW был построен на GET и POST;)
Итак, хотя есть сходство между REST и CRUD, ошибка, которую я вижу большинству команд, заключается в том, чтобы сделать эквивалентность между ними. Команда действительно должна быть осторожной при определении REST API, чтобы не слишком зависеть от мнемоники CRUD, потому что REST как практика действительно имеет много дополнительной сложности, которая не отображает чисто CRUD.
CRUD определяет минимальный набор основных глаголов хранения для чтения и записи данных: создание, чтение, обновление и удаление. Затем вы можете создавать другие операции, объединяя их. Обычно это считается операциями с базой данных, но то, что считается базой данных, является произвольным (например, может быть реляционной СУБД, но также может быть файлами YAML).
REST — это «архитектурный стиль», который обычно включает операции CRUD и другие операции более высокого уровня, которые должны выполняться по некоторой концепции «ресурсов» (произвольно, но это объекты в вашем приложении). REST имеет кучу ограничений , которые делают его интересным (и особенно хорошо связанным с HTTP).
Интерфейс REST может, но не обязательно, показывать все операции CRUD на конкретном ресурсе. То, что доступно в интерфейсе REST, является произвольным и может изменяться из-за системных разрешений, соображений пользовательского интерфейса и того, как это было в тот день, когда был спроектирован и создан интерфейс. Большие дни приводят к более минималистским интерфейсам, как правило, хотя может быть и наоборот.
CRUD
- CRUD — это четыре основных типа команд SQL: создание, чтение, обновление и удаление
- Большинство приложений имеют некоторую функцию CRUD
- Приложение CRUD — это приложение, которое использует формы для получения данных в базу данных и из нее.
ОТДЕЛ
REST означает перенос репрезентативного состояния (иногда это произносится как «REST»)
Он опирается на безвизовый, клиент-серверный, кэшируемый протокол связи — и практически во всех случаях используется протокол HTTP
REST — это стиль архитектуры для проектирования сетевых приложений.
REST — это что-то вроде веб-страницы для машин, которую они могут просматривать, в то время как CRUD — это что-то вроде SOAP, который тесно связан с его клиентами. Это основные различия. Ofc. они похожи на поверхности, но CRUD описывает основные манипуляции с объектами, тогда как REST может описывать интерфейс любого приложения. Другое отличие, что REST может использовать больше 4 HTTP-методов. Это был бы очень длинный ответ, если бы я хотел собрать все различия, если вы проверите вопросы о REST и SOAP, тогда вы найдете большинство из них.
Я думаю, что запутанный REST с CRUD — очень распространенная ошибка, и причина в том, что разработчики не имеют времени, чтобы подробно прочитать о REST. Они просто хотят использовать эту технологию — не понимая ее — на основе ограниченного примера стиля CRUD, написанного аналогичными разработчиками. Подавляющее большинство примеров и учебников отражают серьезную нехватку знаний. Символом этого является сопоставление ресурсов REST с объектами и HTTP-методами с CRUD-операциями этих объектов и использование REST без гиперссылок. С помощью REST вы сопоставляете гиперссылки (включая ссылки с методами POST /PUT /DELETE /PATCH) для своих операций, и вы определяете операцию на стороне клиента, проверяя отношение ссылки (обычно для API). Если клиент REST не знает, что такое связь ссылок, и знает только HTTP-методы и, возможно, некоторые шаблоны URI, то это не клиент REST, а CRUD на HTTP-клиенте. Еще одна распространенная ошибка, что клиент REST — одностраничное javascript-приложение, работающее в браузере. Конечно, вы можете реализовать такого клиента, но REST был предназначен главным образом для автоматических клиентов (серверных приложений, написанных разработчиками, которых вы даже не знаете), а не для ручных клиентов (написанных вами управляемых браузером приложений). Наличие только одного клиента браузера может быть признаком того, что вам не нужен REST, и вы просто переработали проект. В этих случаях CRUD API является жизнеспособным решением, и разработчики называют эти CRUD API как REST, потому что они не знают разницы.
Что такое CRUD-операции
Большинство операций с данными так или иначе представляют собой CRUD операции (Create, Read, Update, Delete), то есть создание, получение, обновление и удаление. Entity Framework Core позволяет легко выполнять все эти действия.
Для примера создадим проект по типу Console App (.NET Core) . И после создания проекта сразу добавим в него функциональность EF Core. Для этого в проект через NuGet пакеты Microsoft.EntityFrameworkCore.SqlServer и Microsoft.EntityFrameworkCore.Tools .
Затем добавим в проект класс User, объекты которого будут храниться в базе данных:
И добавим класс контекста данных ApplicationContext:
Далее определим в классе Program все базовые операции с данными:
И после выполнения мы получим следующий консольный вывод:
Добавление
Для добавления объекта используется метод Add , определенный у класса DbSet, в который передается добавляемый объект:
Метод Add устанавливает значение Added в качестве состояния нового объекта. Поэтому метод db.SaveChanges() сгенерирует выражение INSERT для вставки модели в таблицу.
Если нам надо добавить сразу несколько объектов, то мы можем воспользоваться методом AddRange() :
Удаление
Удаление производится с помощью метода Remove :
Данный метод установит статус объекта в Deleted, благодаря чему Entity Framework при выполнении метода db.SaveChanges() сгенерирует SQL-выражение DELETE.
Если необходимо удалить сразу несколько объектов, то можно использовать метод RemoveRange() :
Редактирование
При изменении объекта Entity Framework сам отслеживает все изменения, и когда вызывается метод SaveChanges() , будет сформировано SQL-выражение UPDATE для данного объекта, которое обновит объект в базе данных.
Но надо отметить, что в данном случае действие контекста данных ограничивается пределами конструкции using. Но рассмотрим другой пример. Мы получаем объект в одном месте,а обновляем в другом. Например:
Несмотря на то, что объект user не равен null, имеется в базе данных, но во втором блоке using обновления соответствующего объекта в БД не произойдет. И в этом случае нам надо использовать метод Update:
При необходимости обновить одновременно несколько объектов, применяется метод UpdateRange() :
Создаем CRUD-приложение с помощью Yii за считанные минуты
Yii – это высокопроизводительный фреймворк, который работает быстро, безопасно и хорошо подходит для приложений Web 2.0.
Он поддерживает приоритет соглашений над конфигурацией, что означает, что если вы следуете руководствам по работе с фреймворком, вы, в конечном итоге, напишите намного меньше кода, чем если бы вы не следовали им (а меньшее количество кода содержит меньшее количество ошибок).
К тому же, фреймворк предлагает много удобных, уже готовых функций, таких как: скаффолдинг, объекты доступа к данным, тематизация, контроль доступа, кэширование и многое другое. В этой статье я расскажу основы того, как используя Yii, создать CRUD систему.
Приступим
Я исхожу из того, что у вас уже установлены Apache, PHP (5.1 или выше) и MySQL , поэтому первым нашим шагом будет загрузка файлов фреймворка. Зайдите на официальный сайт Yii и скачайте последнюю стабильную версию (на момент написания статьи – версия 1.1.13).
Распакуйте ZIP-архив, чтобы получить папку yii-1.1.13.e9e4a0 (идентификатор версии может отличаться в зависимости от версии, которую вы загрузили), переименуйте папку в yii, затем поместите ее в ваш корневой каталог, доступный из сети.
В моем случае, это C:wampwww таким образом, путь к файлам фреймворка будет следующим: C:wampwwwyii .
Я буду ссылаться на него как на протяжении всей статьи, поэтому вы можете легко следовать всем шагам, даже если ваши настройки отличаются от моих.
Затем мы должны проверить, какие функции Yii будут поддерживаться нашей системой. Откройте ссылку https://localhost/yii/requirements в вашем браузере, чтобы увидеть детали требований фреймворка.
Поскольку мы будем работать с базой данных MySQL, расширение MYSQL PDO должно быть разрешено.
Мы хотели быстро проверить требования Yii, и поэтому поместили файлы в доступный каталог, но рекомендуется хранить файлы Yii вне сетевого каталога. После проверки можете свободно переместить файлы Yii куда угодно.
Двигаемся дальше
Каждое веб-приложение имеет свою структуру каталога, и Yii приложения также нуждаются в поддержке иерархичной структуры внутри сетевого каталога.
Чтобы создать каркас приложения с подходящей структурой каталога, вы можете использовать Yii инструмент yiic, работающий из командной строки. Перейдите в сетевой каталог и введите следующее:
Эта команда создаст скелет приложения под названием yiitest с минимальным набором необходимых файлов. Внутри вы найдете файл index.php , который служит в качестве скрипта входа, он принимает пользовательские запросы и решает, какой контроллер должен обработать запрос.
Фреймворк Yii основан на принципах MVC и ООП, поэтому вы должны разбираться в этих темах. Если вы не знакомы с MVC, почитайте серию статей The MVC Pattern and PHP , которая предлагает хорошее введение в эту тему.
В Yii URL-адрес выглядит как https://localhost/yiitest/index.php?r=controllerID/actionID . Например, в блоговой системе URL может быть следующим: https://localhost/yiitest/index.php?r=post/create. post – это идентификатор контроллера, а create – идентификатор действия.
Основываясь на идентификаторах, скрипт входа решает, какой контроллер и метод вызвать.
Контроллер, имеющий идентификатор post, должен быть назван PostController (идентификатор получается путем отсечения суффикса Controller от имени класса и изменением первой буквы на строчную).
Идентификатор действия – это идентификатор метода, представленного в контроллере подобным образом; внутри PostController должен быть метод под названием actionCreate() .
Может быть несколько представлений, ассоциированных с одним контроллером, поэтому мы храним файлы представлений внутри папок protected/views/controllerID .
Мы можем создать файл представления для нашего контроллера под названием create.php в описанном выше каталоге, и затем представить его пользователям, просто написав следующий код в actionCreate():
Также, если нужно, можно передать дополнительные данные в представление. Это делается следующим образом:
Внутри файла представления мы можем получить доступ к данным через переменную $data.
Представление также имеет доступ к переменной $this , которая указывает на экземпляр контроллера, воспроизводящего представление.
Более того, если вы хотите иметь удобные для пользователя URL-адреса, то можете раскомментировать следующий участок кода в файле protected/config/main.php :
Тогда URL-адреса будут выглядеть следующим образом: https://localhost/yiitest/controllerID/actionID .
Разработка CRUD приложения
Теперь, когда вы знаете важные соглашения по Yii, пришло время приступить к CRUD. В этой части мы разработаем простую систему, в которой пользователь может выполнять CRUD операции (создание, извлечение, обновление и удаление) с сообщением в блоге.
Создадим базу данных MySQL под названием yiitest и внутри нее создадим таблицу posts. Таблица будет иметь только три столбца: идентификатор ( id ), название ( title ) и контент ( content ).
Откройте файл конфигурации вашего приложения ( protected/config/main.php ) и раскомментируйте следующие строки:
Замените testdrive на имя вашей базы данных, то есть, yiitest. Также вы должны обеспечить полномочия, необходимые Yii для подключения.
В фреймворке Yii каждая таблица базы данных должна иметь соответствующий класс модели типа CActiveRecord . Польза от этого в том, что нам не нужно иметь дело с таблицами баз данных напрямую. Вместо этого мы можем работать с объектами модели, которые соответствуют различным строкам таблицы.
Например, класс Post – это модель для таблицы сообщений. Объект этого класса представляет собой строку из таблицы posts и имеет атрибуты для отражения значений столбцов.
Для того чтобы быстро генерировать модель, мы будем использовать веб-инструмент Yii под названием gii . Этот инструмент может быть использован для генерации моделей, контроллеров и форм для CRUD операций.
Чтобы использовать gii в вашем проекте, найдите следующие строки в файле конфигурации вашего проекта, раскомментируйте их добавьте пароль.
Затем обратитесь к gii с помощью следующего адреса: https://localhost/yiitest/index.php?r=gii . Если вы используете дружественные пользователю URL-адреса, адрес будет такой: https://localhost/yiitest/gii .
Кликнете на Model Generator. gii попросит вас ввести имя таблицы; введите posts для имени таблицы, а для имени модели используйте Post. Затем кликнете Generate для создания модели.
Проверьте папку protected/models, и вы найдете там файл Post.php.
Теперь кликнете на CRUD Generator . Введите в качестве имени модели Post. Идентификатор контроллера автоматически заполнится как post.
Это означает, что новый контроллер будет сгенерирован под именем PostController.php .
Кликнете на Generate. Сгенерируется контроллер, а также несколько файлов представления с формами, необходимыми для CRUD операций.
Теперь у вас есть совершенно новое CRUD приложение! Кликнете на ссылку try it now , чтобы протестировать его. Для управления сообщениями вам нужно будет войти как admin/admin .
Для того, чтобы создать новое сообщение, вам нужно обратиться по адресу https://localhost/yiitest/post/create , а для обновления определенного сообщения просто откройте в браузере ссылку https://localhost/yiitest/post/update/postID .
Аналогично вы можете составить список всех сообщений и удалить все или некоторые из них.
Заключение
Yii – это очень мощный фреймворк, если речь заходит о разработке проектов поколения Web 2.0. Фактически, вы только что увидели, как легко создать полностью функционирующую CRUD систему всего за несколько минут!
Без сомнения, Yii может спасти вас от тяжелой работы, потому что вам не нужно начинать проект с нуля. Yii предоставляет фундамент приложения, и вы можете расширять его по своему усмотрению.
Данная публикация представляет собой перевод статьи « Build a CRUD App with Yii in Minutes » , подготовленной дружной командой проекта Интернет-технологии.ру
Создание, чтение, обновление и удаление — Create, read, update and delete
В компьютерном программировании , создание, чтение, обновление и удаление ( CRUD ) являются четыре основных функциями постоянного хранения . Альтернативные слова иногда используются при определении четырех основных функций CRUD , например, получить вместо чтения , редактирования вместо обновления , или уничтожить вместо удаления . CRUD также иногда используется для описания пользовательского интерфейса конвенций , которые облегчают просмотр, поиск и изменение информации ; часто с использованием компьютерных на основе форм и отчетов . Термин был , вероятно , первым популяризировали Джеймс Мартин в его книге 1983 года Управления по данным базовой среды . Акроним может быть продлен до CRUDL , чтобы покрыть список больших наборов данных , которые приносят дополнительные сложности , такие как пагинация , когда наборы данных слишком велики , чтобы легко удерживаться в памяти.
содержание
База данных приложения
Акроним CRUD относится ко всем основным функциям, которые реализуются в реляционных баз данных приложений . Каждая буква в аббревиатуре можно сопоставить со стандартным Structured Query Language (SQL) заявление, протокол передачи гипертекста метод (HTTP) (это , как правило , используется для создания RESTful API — интерфейсы ) или служба распространения данных (DDS) операции:
операция | SQL | HTTP | RESTful WS | ДДС |
---|---|---|---|---|
Создайте | ВСТАВИТЬ | PUT / POST | СООБЩЕНИЕ | записывать |
Чтение (Извлечение) | ВЫБРАТЬ | ПОЛУЧИТЬ | ПОЛУЧИТЬ | чтения / принимать |
Update (Изменить) | ОБНОВИТЬ | PUT / POST / PATCH | ПОЛОЖИЛ | записывать |
Delete (уничтожить) | УДАЛЯТЬ | УДАЛЯТЬ | УДАЛЯТЬ | располагать |
Сравнение операций CRUD базы данных ориентированы на методы HTTP имеет некоторые недостатки. Строго говоря, как PUT и POST могут создавать ресурсы; Основное различие заключается в том, что POST оставляет на сервере, чтобы решить, на какой URI, чтобы сделать новый ресурс, доступный, в то время как PUT диктует, что URI для использования; URI, как концепции не совпадают с аккуратно CRUD. Существенно о PUT является то, что он заменит любой ресурс URI, ранее со ссылкой на с совершенно новой версией, поэтому метод PUT быть перечислен для обновления, а также. PUT является «заменить» операцию, которой можно было бы утверждать не «обновление».
Хотя реляционная база данных обеспечивает общий уровень постоянного хранения программных приложений, существуют многочисленные другие слои инерционности. Функциональность CRUD , например , может быть реализована с помощью объектных баз данных , база данных XML , плоских текстовых файлов или пользовательских форматов файлов.
Пользовательский интерфейс
CRUD также имеет отношение на уровне пользовательского интерфейса большинства приложений. Например, в книге адресов программного обеспечения, основная единица хранения является индивидуальным контактом входом . Как минимум, программное обеспечение должно позволить пользователю
- Создание и добавление новых записей
- Читайте, извлекать, поиск, или просмотреть существующие записи
- Обновление или редактировать существующие записи
- Удалить / отключить / удалить существующие записи
Без крайней мере этих четырех операций, программное обеспечение не может считаться полным. Поскольку эти операции являются настолько фундаментальными, они часто описаны и документированы в рамках одной всеобъемлющей рубрики, например, как «управление контактами», «управление контентом» или «поддержание контакта» (или «управление документами» в целом, в зависимости от основного блока для хранения конкретное применение).
Другие варианты
Другие варианты включают в себя CRUD:
- ХЛЕБ (Просмотр, чтение, редактирование, добавление, удаление)
- DAVE (удаление, добавление, просмотр, редактирование)
- ДЕРЬМО (Create, Replicate, Append, процесс)
Что такое CRUD-операции
CRUD (сокр. от англ. create, read, update, delete — «создать, прочесть, обновить, удалить») — акроним, обозначающий четыре базовые функции, используемые при работе с персистентными хранилищами данных [1] :
Термин стал популярным благодаря книге Джеймса Мартина (англ. James Martin ) «Managing the Data-base Environment», выпущенной в 1983 году [2] .
Содержание
Примеры
Операция | Оператор в языке SQL | Операция в протоколе HTTP |
---|---|---|
Создание (create) | INSERT | POST |
Чтение (read) | SELECT | GET |
Редактирование (update) | UPDATE | PUT или PATCH |
Удаление (delete) | DELETE | DELETE |
См. также
- Шаблон проектирования «Active record».
Примечания
- ↑ InfoWorld. Developer world. REST and CRUD: the Impedance Mismatch. Дата публикации: 29 января 2007. Автор: Martin Heller.
- ↑ Martin, James (1983), Managing the Data-base Environment, Englewood Cliffs, New Jersey: Prentice-Hall, с. 381, ISBN 0135505828 .
Ссылки
- Примеры CRUD для различных фреймворков на языке Java (англ.)
Это заготовка статьи о программировании. Вы можете помочь проекту, дополнив её. |
- Модель данных
- Реляционная
- модель
- алгебра
- Нормальная форма
- Ссылочная целостность
- БД
- СУБД
- Иерархическая модель
- Сетевая модель
- Объектно-ориентированная
- БД
- СУБД
- Транзакция
- Журнализация
- Секционирование
- Потенциальный
- Первичный
- Внешний
- Естественный
- Суррогатный (искусственный)
- Суперключ
Что такое Wiki.sc Вики является главным информационным ресурсом в интернете. Она открыта для любого пользователя. Вики это библиотека, которая является общественной и многоязычной.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License.
Взаимодействие с данными ElasticSearch при помощи операций CRUD
Гибкий поиск и индексирование – очень важный, а иногда и абсолютно необходимый аспект работы веб-приложений и сайтов. Для этого существует множество сложных решений, которые управляют данными и позволяют взаимодействовать с ними по HTTP. Но есть и альтернативные средства; например, ElasticSearch – поисковый движок, ставший популярным благодаря простой настройке и гибкости.
В этой статье речь пойдёт о взаимодействии с ElasticSearch.
Требования
- Предварительно настроить сервер Ubuntu 12.04.
- Заранее установить ElasticSearch (инструкции по установке можно найти здесь).
Основы работы ElasticSearch
Прежде чем углубиться в подробности использования ElasticSearch, важно понять основные механизмы этой программы.
ElasticSearch предоставляет RESTful API, с которым можно взаимодействовать; в основном этот тип интерфейса описывает способ взаимодействия клиента и сервера. Серверы REST позволяют взаимодействовать с данными при помощи операций HTTP (GET, POST, PUT, DELETE) и не хранят информацию о состоянии. Каждый запрос является независимым; ресурсы возвращаются в общих текстовых форматах (таких как JSON).
API-интерфейс ElasticSearch позволяет взаимодействовать с данными при помощи HTTP-глаголов и передает параметры и информацию посредством использования компонентов URI. Это означает, что он хранит данные на основе того, как отформатированы URI.
При типичном взаимодействии с ElasticSearch нужно указать используемую операцию, чтобы определить, какие действия будут выполнены на данных. Чтобы извлечь информацию, можно использовать команду GET. Чтобы создать или обновить записи, используются команды PUT или POST.
Методы CRUD
CRUD расшифровывается как «Create, Read, Update, Delete». Все эти операции необходимы для продуктивного управления постоянным хранилищем данных. Кроме того, они эквивалентны методам HTTP, благодаря чему их можно использовать для взаимодействия с данными с помощью стандартных методов. Методы CRUD реализованы с помощью методов HTTP (POST, GET, PUT, DELETE).
API-интерфейс ElasticSearch позволяет выполнять все эти операции.
Рассмотрим работу ElasticSearch подробнее. Для примера можно использовать curl, поскольку:
- метод HTTP можно указать явно,
- взаимодействовать с ElasticSearch можно в терминальной сессии.
По умолчанию ElasticSearch работает на порте сервера 9200.
Создание контента
Создание объектов в ElasticSearch обычно называется индексацией. Это простой процесс добавления данных в хранилище и распределение их по категориям. Создавать объекты в ElasticSearch можно при помощи HTTP-методов PUT или POST.
В своей простейшей форме команда может содержать индекс, тип и идентификатор хранящегося объекта. В целом она имеет такой вид:
curl -X PUT https://server_name.com:9200/index/type/object_id -d ‘< >‘
В этом случае, индекс можно рассматривать как базу данных. Это единица верхнего уровня, которая может отделить некоторый блок информации от других; к примеру, это позволяет отделить данные приложения от данных сайта.
Тип в данном случае – это произвольная категоризация. Вы можете создавать разные типы, основное назначение которых – группировка определенной информации. Например, можно создать типы данных «users» или «documents».
Id нужно указать при создании команды PUT; команда POST генерирует id автоматически.
После флага –d нужно указать объект, который нужно сохранить. Это JSON-подобный объект, имеющий гибкий формат. Категории создаются на ходу, потому можете указать любую категорию.
К примеру, индекс для оборудования детских площадок может иметь такой вид:
curl -XPUT «https://localhost:9200/playground/equipment/1» -d ‘ < "type": "slide", "quantity": 2 >‘
В случае если операция выполнена успешно, программа должна вернуть:
Как видите, вывод сообщает, что предоставленная информация была проиндексирована. Обратите внимание: программа управляет версиями информации (это может пригодиться позже).
Команда PUT также позволяет обновлять информацию. Чтобы указать, что запись нужно создать, а не обновить, используйте сегмент /_create:
curl -XPUT «https://localhost:9200/playground/equipment/1/_create» -d ‘< "type": "slide", "quantity": 2 >‘
Если такой документ уже существует, API вернёт ошибку:
Чтение данных
Все внесённые данные в дальнейшем можно извлечь. Для чтения контента используется HTTP-метод GET.
Основной синтаксис извлечения данных содержит индекс, тип и id:
curl -XGET «https://localhost:9200/playground/equipment/1»
Эта команда выведет сохранённую ранее информацию. Ключевое слово _source в выводе указывает источник данных:
Чтобы получить вывод в более удобном для восприятия формате, добавьте в конец запроса опцию ?pretty:
curl -XGET «https://localhost:9200/playground/equipment/1?pretty»
<
«_index» : «playground»,
«_type» : «equipment»,
«_id» : «1»,
«_version» : 2,
«exists» : true, «_source» : < "type": "slide", "quantity": 1 >
>
Чтобы получить только сам документ, добавьте в запрос /_source:
curl -XGET «https://localhost:9200/playground/equipment/1/_source?pretty»
Чтобы вывести определённые поля, добавьте в запрос ?fields= , :
curl -XGET «https://localhost:9200/playground/equipment/1?fields=type»
Эта команда вернёт отфильтрованный вывод:
Обновление контента
Для обновления контента используется HTTP-команда POST, которая позволяет изменять данные при помощи скриптов и параметров. Также для этого можно использовать команду PUT, которая, по сути, пересоздаёт объект, заменяя его новой версией.
Чтобы обновить данные при помощи команды POST, нужно добавить в URI опцию /_update. Для обозначения объекта используются ключи script и params. Команда может ссылаться на внутренние ключи документа при помощи префикса ctx._source.
К примеру, чтобы обновить количество горок на детской площадке, можно ввести:
Попробуйте теперь извлечь данные и обратите внимание на количество:
curl -XGET «https://localhost:9200/playground/equipment/1/_source»
Чтобы добавить новое поле, нужно просто обновить объект и присвоить значение новому ключу:
Обратите внимание: возможно, придется убрать несколько кавычек, чтобы избежать путаницы.
Чтобы удалить поле, используйте метод .remove, задав имя ненужного поля:
Если скрипты затрудняют выполнение необходимых операций, можно просто сослаться на поле, которое нужно обновить, и передать ему новое значение, используя ключ doc вместо script.
curl -XPOST «https://localhost:9200/playground/equipment/1/_update» -d ‘ < "doc" : < "type": "swing" >>’
Чтобы убедиться, что всё прошло успешно, запросите документ:
curl -XGET «https://localhost:9200/playground/equipment/1/_source»
Удаление контента
ElasticSearch удаляет данные/документы по их ID. Для этого используется HTTP-метод DELETE.
К примеру, чтобы удалить созданный ранее документ с ID 36, нужно набрать:
curl -XDELETE «https://localhost:9200/playground/equipment/36»
Это означает, что операция прошла успешно. Если объекта с указанным в команде ID не существует, команда вернёт такой результат:
Ключ found сообщает, был ли найден и обработан запрашиваемый объект.
Поиск данных
Для поиска объектов используется компонент /_search. Его можно добавлять после сервера, индекса или типа в зависимости от области, которую нужно найти.
К примеру, чтобы найти на сервере все данные с количеством 4, нужно ввести:
Чтобы получить удобный для восприятия вывод, используйте опцию pretty:
curl -XGET «https://localhost:9200/_search?q=quantity:4&pretty»
<
«took» : 14,
«timed_out» : false,
«_shards» : <
«total» : 25,
«successful» : 25,
«failed» : 0
>,
«hits» : <
«total» : 1,
«max_score» : 1.0,
«hits» : [ <
«_index» : «playground»,
«_type» : «equipment»,
«_id» : «1»,
«_score» : 1.0, «_source» : <"type":"slide","quantity":4>
> ]
>
>
Чтобы выполнить поиск только в определённых полях, а остальные поля исключить, добавьте в поиск индекс и тип URI:
curl -XGET «https://localhost:9200/playground/equipment/_search?q=quantity:4&pretty»
Чтобы указать тип, но исключить индекс, замените индекс компонентом _all:
curl -XGET «https://localhost:9200/_all/equipment/_search?q=quantity:4&pretty»
Также можно искать определённый язык, который передается в качестве документа, похожего на стандартный JSON.
curl -XGET «https://localhost:9200/playground/equipment/_search» -d ‘ < "query": < "term": < "type": "slide" >> >’
Заключение
Конечно, это только основы работы с ElasticSearch. Существует еще множество вариантов поиска и фильтрации результатов, которые, к сожалению, невозможно охватить в рамках одного руководства.
ElasticSearch – очень гибкое средство для быстрой индексации объектов; его функции почти безграничны с точки зрения его способности генерировать результаты поиска.
Эта статья знакомит вас только с некоторыми основными понятиями ElasticSearch. Его можно использовать как инструмент для быстрого поиска, а можно создать сложный объект индексации для детального поиска информации.
Что такое CRUD-операции
Несмотря на огромное число разнообразных сайтов, практически всю веб разработку можно свести к CRUD операциям. CRUD широко распространенный термин, означающий 4 стандартные операции над любой сущностью (ресурсом): создание, чтение, обновление и удаление. Например в случае с пользователем можно составить такое соответствие:
Create
Read
- Просмотр профиля пользователями сайта
- Просмотр пользователя в административном интерфейсе
Update
- Обновление личных данных
- Смена емейла
- Смена пароля
Delete
Точно так же можно расписать действия над любыми другими ресурсами, фотографиями пользователя, его друзьями, сообщениями и т.п.
Хозяйке на заметку. Иногда в качестве шутки веб-разработчиков называют крудошлепами, а фронтенд-разработчиков формошлепами 😀
Создание полного круда включает в себя следующие действия:
- Создание сущности в коде (как правило класса)
- Добавление таблицы в базу
- Написание тестов на обработчики
- Добавление обработчиков
- Добавление шаблонов
Новички тратят на создание такого круда не один день. У опытного разработчика, в прокаченном фреймворке, этот процесс занимает максимум часы. Slim, как и другие микрофреймворки, не предоставляет никаких средств автоматизации, поэтому придется многое делать руками. В целях обучения это оправданно, но в промышленной разработке, то что может быть автоматизировано, должно быть автоматизировано.
Ниже мы пройдемся по всему процессу создания круда пользователя за исключением работы с базой данных и тестов. Начнем с роутинга. Полный круд пользователя включает минимум 7 маршрутов. Их может быть больше, так как любое из действий может повторяться не один раз.
Глагол | Маршрут | Шаблон | Описание |
---|---|---|---|
GET | /users | users/index.phtml | Список пользователей |
GET | /users/ | users/show.phtml | Профиль пользователя |
GET | /users/new | users/new.phtml | Форма создания нового пользователя |
POST | /users | Создание нового пользователя | |
GET | /users/ |
users/edit.phtml | Форма редактирования пользователя |
PATCH/PUT | /users/ | Обновление пользователя | |
DELETE | /users/ | Удаление пользователя |
Такое соглашение изначально появилось в Rails и затем было адаптировано во многих фреймворках на языках отличных от Ruby.
В этом уроке мы разберем первые два маршрута (просмотр списка и конкретного ресурса), а остальные в следующих уроках.
Что такое CRUD-операции
CRUD — акроним, обозначающий четыре базовые функции, используемые при работе с базами данных [1] : создание (англ. create ), чтение ( read ), модификация ( update ), удаление ( delete ). Введён Джеймсом Мартином (англ. James Martin ) в 1983 году [2] как стандартная классификация функций по манипуляции данными.
В SQL этим функциям операциям соответствуют операторы Insert (создание записей), Select (чтение записей), Update (редактирование записей), Delete (удаление записей). В некоторых CASE-средствах использовались специализированные CRUD-матрицы или CRUD-диаграммы, в которых для каждой сущности указывалось, какие базовые функции с этой сущностью выполняет тот или иной процесс или та или иная роль. В системах, реализующих доступ к базе данных через API в стиле REST, эти функции реализуются зачастую (но не обязательно) через HTTP-методы POST, GET, PUT и DELETE соответственно.
Хотя традиционно оперирование в стиле CRUD применяется к базам данных, такой подход может быть распространён на любые хранимые вычислительные сущности (файлы, структуры в памяти, объекты). Шаблон проектирования ActiveRecord обеспечивает соответствие функций CRUD объектно-ориентированному подходу, и широко используется в различных фреймворках для доступа к базам данных из объектно-ориентированных языков программирования.
CRUD Operations in SQL Server
By: Jeffrey Yao | Updated: 2020-07-19 | Comments (3) | Related: More > Database Design
Problem
I am a new SQL Server DBA, I heard of the CRUD acronym, but I do not quite understand the meaning and importance of these CRUD operations, can you please give a detailed explanation?
Solution
CRUD is the basic operations in any RDBMS, and this tip will take a detailed look at the CRUD operations in SQL Server.
What is CRUD?
CRUD means Create, Read, Update, Delete, and it can mean different things in different systems, but for SQL Server, it is commonly considered to map to the following SQL operations on table records.
CRUD | SQL |
---|---|
C — Create | Insert |
R — Read | Select |
U — Update | Update |
D — Delete | Delete |
According to Wikipedia, this acronym may be first coined by James Martin in his 1983 book Managing the Data-base Environment.
Importance of CRUD
CRUD operations in RDBMS are the basic operation units, built upon which is a very rich ecosystem, such as security control, object permission/access, locking mechanism, performance optimization, transaction control, resource control, etc.
There are a few obvious benefits here:
- Facilitate operation security control: in the real world, for the same data, some people can read it but not change it, like your salary, which you can read it but you cannot update/delete it (at least without authorization). Some can only read/write their own data, but no access to other’s data. With CRUD operation concepts, we can satisfy all these various granular access requirements by imposing the right mix of permissions on CRUD operations.
- Facilitate granularity of business design: when we design a business application, we often consider business objects as the building blocks (like in OOP design), such as in a banking application, we have CUSTOMER, ACCOUNT, and other objects like RATE, PRODUCT, etc. For each of these objects, we can apply CRUD operations on them (in OOP, these objects will have CRUD methods), and these make the application design simpler and more scalable.
- Facilitate the trouble-shooting process: to better understand this benefit, we can use an opposite example. SQL Server has introduced the MERGE statement with SQL Server 2008, this Merge statement is a powerful function, it kind of blends insert, update, delete together in one unit. However, whenever I debug a script with such MERGE statement, I have to open another SSMS window to check the target and source tables based on the merge search condition and calculate the expected result and then compare with the MERGE execution result. Yes, the MERGE statement is concise but in a troubleshooting process, the debug time with a MERGE statement is longer as well.
Examples of CRUD
We will list a few simple CRUD examples here. First, we will create a simple table as follows:
C for Create (Insert)
There can be many different syntax forms for an insert, but most common ones are the following four forms:
In method 4, we assume we have an existing file c:\tem\a.csv and the file is as follows:
When we do a select on table dbo.Product, we will see the table are populated correctly as shown below:
R for Read (SELECT)
In SQL Server, to read data, there are literally two forms, one is data set read and another is data row read. The data set read is via SELECT and data set read can read multiple rows at one time like the following.
The data row read exists in cursor read via FETCH, and the following is an example.
U for Update
Update is very straight-forward in SQL Server, and its most common form is as follows.
D for Delete
Delete data from a table in SQL Server can be literally two forms, one is the regular DELETE statement and another is TRUNCATE TABLE. There are lots of articles discussing about the difference between DELETE and TRUNCATE.
Here are two examples
In SQL Server 2008, there is a MERGE statement which can achieve the functions of CUD (no R). I purposely omit it here as it is not available across all SQL Server versions and also it is impossible to classify it to C or U or D.
Extending CRUD Concept
CRUD in essence seems to be DML (data manipulation language), but this concept can be extended to DDL (Data Definition Language). For example, if we consider a database as a container, we can CRUD lots of database objects, such as table, view, stored procedure and user, etc. Let’s use a table as an object, we can see the following CRUD actions:
- C: Create table
- R: sp_help
to check the table structure
- U: Alter table
- D: Drop table
Summary
In this tip, we have discussed what CRUD is in SQL Server, and why CRUD is important and how we can extend this CRUD concept from DML to DDL.
For a new DBA to grasp the knowledge of SQL Server, it may be good to look at SQL Server operations from a CRUD perspective, and this may make learning much easier as we can categorize the learning under each C/R/U/D.
Быстрое создание CRUD-интерфейса на PHP с помощью продвинутого инструмента генерации CRUD c использованием PDO
В этой статье мы рассмотрим 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. Откройте этот файл в вашем любимом текстовом редакторе и измените следующие данные в данном файле.
Как вы можете видеть, содержимое файла говорит само за себя. $config[«script_url»] устанавливает URL-адрес, который вы используете для доступа к сайту.
После того как вы сохранили сведения о базе данных, вы будете готовы использовать инструмент PDO CRUD. В нашем примере мы создадим две таблицы MySQL, которые содержат данные о сотрудниках и отделах.
- сотрудники: содержит сведения о сотруднике
- отдел: содержит информацию об отделе
Откройте инструмент управления вашей базы данных и выполните следующие команды для создания таблиц, которые мы только что обсуждали выше. Я использовал PhpMyAdmin для работы с базой данных MySQL.
Во-первых, давайте создадим таблицу department.
Далее мы создадим таблицу employee.
Как вы можете видеть, мы использовали столбец dept_id в таблице employee, который содержит идентификатор соответствующего отдела, хранящегося в таблице отдела.
После того как вы создали таблицы в вашей базе данных, мы готовы создать интерфейс приложения 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.
И теперь, если вы обратитесь в своем браузере к файлу department.php, вы увидите что-то вроде этого:
Ну и ну! Всего две строки кода и у вас есть готовый к использованию пользовательский интерфейс CRUD, позволяющий выполнять все необходимые действия, такие как создание, чтение, обновление и удаление на вашей модели. Не говоря уже о том, что само представление списка по умолчанию содержит много возможностей, включая:
- поиск
- встроенную навигацию по страницам
- печать
- экспорт записей в формате CSV, PDF или Excel
- массовая операция удаления
- сортировка по столбцам
Нажмите на кнопку Add на правой стороне, и она откроет форму для добавления записи в таблицу отделов.
Добавим несколько записей, с помощью кнопки Add и посмотрим, как это выглядит.
Как вы можете видеть, это очень легкий и изящный интерфейс. Почти без усилий мы создали CRUD для модели отделов! Далее мы увидим, как сделать то же самое для таблицы сотрудников.
Таблица сотрудников
В этом разделе мы увидим, как создать CRUD для таблицы сотрудников. Давайте создадим employee.php со следующим содержимым.
Это в значительной степени тот же код, что и в прошлый раз; нам просто нужно изменить имя таблицы. Если вы нажмете на кнопку Add, вы также увидите красивую форму, позволяющую добавлять записи сотрудников.
Возможно, вы заметили одну проблему: поле Dept id представляет собой текстовое поле, но было бы лучше как видеть вместо этого раскрывающеся список, содержащий названия отделов. Давайте посмотрим, как этого добиться.
В этом коде мы получили доступ к таблице department через PDO CRUD, так что мы можно связать название отдела с идентификатором отдела. Затем мы обновили параметры привязки для поля идентификатора отдела, так что он будет отображаться в виде раскрывающегося списка ( select ).
Теперь нажмите на кнопку Add, чтобы увидеть, как она выглядит! Вы должны увидеть, что теперь поле Dept Id превращается в раскрывающийся список!
Добавим несколько записей о сотрудниках и посмотрим, как выглядит список сотрудников:
Это выглядит красиво! Но у нас здесь есть одна небольшая проблема: вы можете видеть, что в столбце Dept id показывается идентификатор отдела, и было бы неплохо, чтобы вместо этого отобразить имя отдела. Давайте выясним, как этого добиться!
Давайте приведем код в employee.php согласно следующему содержимому.
Здесь мы создали соединение между таблицами сотрудников и отделов с помощью $pdocrud->joinTable , а затем указали PDO CRUD отображать только имя сотрудника, название отдела и контактную информацию, использу строчку кода $pdocrud->crudTableCol .
И с этим изменением, список сотрудников должен выглядеть следующим образом:
Как вы можете видеть, скрипт PDO CRUD является довольно гибким и позволяет вам все возможные варианты для настройки пользовательского интерфейса.
Пока мы обсуждали как настроить простой интерфейс CRUD. В следующем разделе мы посмотрим на еще несколько вариантов, которые можно использовать для улучшения и настройки пользовательского интерфейса CRUD.
Варианты настройки
В этом разделе мы увидим несколько вариантов настройки, предоставляемые инструментом PDO CRUD. Конечно, это невозможно просмотреть все варианты, поскольку инструмент PDO CRUD обеспечивает гораздо больше, чем мы могли бы охватить в одной статье, но я постараюсь осветить пару важных особенностей.
Встроенное редактирование
Встроенное редактирование является одним из наиболее важной возможностей, позволяя вам редактировать запись быстро на самой странице списка. Давайте посмотрим, как включить его на странице списка отделов.
Давайте внесем изменения в скрипт department.php, как показано в следующем фрагменте кода.
Как вы можете видеть, мы включили только настройку inlineEditbtn , и возможность встроенного редактирования уже работает!
Это действительно полезная возможность, которая позволяет редактировать записи на лету!
Фильтры
Как вы могли заметить, на странице списка отделов уже есть поиск для фильтрации записей. Тем не менее, вы можете добавить свои собственные фильтры для улучшения функции поиска. Именно это и обеспечивает опция Filters, поскольку она позволяет создавать собственные фильтры!
Мы будем использовать employee.php для этой функции, поскольку это идеальный демонстрационный вариант использования. На странице списка сотрудников мы показываем название отдела для каждой записи сотрудника, поэтому давайте создадим фильтр отдела, который позволит вам фильтровать записи по названию отдела.
Идите дальше и исправьте файл employee.php, как показано в следующем фрагменте.
Мы только что добавили две строки с вызовами addFilter и setFilterSource , и после этого список сотрудников выглядит следующим образом:
Разве это не круто? Всего двумя строчками кода вы добавили свой пользовательский фильтр!
Загрузка изображений
Это обязательная функция, если вы хотите настроить загрузку файлов через ваши формы. Всего одной строкой кода вы можете преобразовать обычное поле в поле загрузки файла, как показано в следующем фрагменте.
Я предполагаю, что у вас есть поле profile_image в таблице сотрудников, и что вы готовы преобразовать его в поле для отправки файла!
Вот и все! Пользователи теперь смогут загрузить изображение в поле profile_image .
Капча
В настоящее время если вы хотите сберечь свой сайт от спама, проверка CAPTCHA является важной особенностью. Инструмент PDO CRUD уже предоставляет несколько вариантов на выбор.
Он предоставляет две опции: CAPTCHA и ReCAPTCHA. Если вы выбираете опцию CAPTCHA, она представляет собой математическую головоломку, которую должен решить пользователь. С другой стороны, если вы выберете опцию ReCAPTCHA, она представит знаменитую головоломку в стиле I’m not a robot!
Если вы хотите добавить простой пазл CAPTCHA, вам нужно добавить следующую строчку перед тем, как отображать CRUD.
С другой стороны если вы предпочитаете ReCAPTCHA, вы можете добиться того же результа, используя следующий фрагмент.
Вам просто нужно заменить аргументы your-site-key и site-secret на действительные учетные данные от Google.
Пока мы обсуждали варианты, которые улучшают функциональность вашего приложения. Далее мы увидим, как можно изменить тему оформления и, таким образом, внешний вид приложения.
Темы оформления
Если вам не нравится тема оформления по умолчанию, у вас есть несколько вариантов на выбор. Инструмент PDO CRUD предоставляет темные, светлые, зеленые и продвинутые темы оформления в качестве доступных опций.
Например, следующий список основан на зеленой теме.
Это выглядит красиво, не такли?
Чистый Bootstrap
Хотя тема оформления по умолчанию уже поддерживает адаптивные макеты, инструмент PDO CRUD также поддерживает интеграцию с библиотекой Bootstrap!
Вам нужно использовать следующий фрагмент, если вы хотите построить макет с помощью библиотеки Bootstrap.
И вот как это выглядит:
Заключение
Сегодня мы рассмотрели продвинутый построитель форм базы данных PDO CRUD и инструмент управления данными, доступный для покупки на CodeCanyon. По сути, это инструмент для построения интерфейса приложений CRUD. Он предоставляет множество вариантов настройки, охватывающих практически все, что требуется системе CRUD.
Как я уже говорил ранее, действительно трудно охватить все, что предоставляет инструмент PDO CRUD, в одной статье, но, надеюсь, официальная документация должна дать вам более точное представление о его всеобъемлющих возможностях.
Я надеюсь, что вы уверены, что инструмент PDO CRUD достаточно мощный, чтобы удовлетворить ваши требования и позволяет избавиться от рутинной работы, которую вы должны выполнять каждый раз, когда вы хотите настроить CRUD в своем приложении. Несмотря на то, что это платный плагин, я считаю, что у него приемлемая цена, учитывая множество возможностей, которые он предоставляет.
Если у вас есть предложения или замечания, не стесняйтесь высказать свое мнение, я всегда рад поучаствовать в обсуждении.