Видение этого проекта состоит в том, чтобы дать разработчикам возможность выполнять базовые операции CRUD без необходимости писать пользовательский PHP -код. Сценарии предназначены для динамики, что позволяет пользователям взаимодействовать с API, просто понимая предоставленную документацию и выполняя HTTP -запросы.
create.php )read.php )update.php )delete.php )file-upload.php )Эта документация содержит обзор набора сценариев PHP, предназначенных для основных операций CRUD (создание, чтение, обновление, удаление) и загрузки файлов. Сценарии предназначены для использования в качестве API для управления данными в реляционной базе данных.
Этот проект предоставляет набор сценариев PHP, предназначенных для того, чтобы служить простым API для выполнения операций CRUD (создание, чтение, обновление, удаление) в реляционной базе данных. Кроме того, он включает в себя сценарий для обработки загрузки файлов. Сценарии предназначены для того, чтобы предложить гибкое и расширяемое решение для управления взаимодействиями данных с бэкэнд -сервером.
Перед использованием сценариев убедитесь, что подключение к базе данных правильно настроено. Детали подключения можно найти в файле configuration/connection.php . Измените файл, чтобы установить хост базы данных, имя пользователя, пароль и имя базы данных.
Пример configuration/connection.php :
define ( ' DB_SERVER ' , ' YOUR_HOSTNAME ' );
define ( ' DB_USERNAME ' , ' YOUR_USERNAME ' );
define ( ' DB_PASSWORD ' , ' YOUR_PASSWORD ' );
define ( ' DB_NAME ' , ' YOUR_DATABASE ' );Описание: Этот скрипт обрабатывает создание новых записей в базе данных на основе предоставленных данных JSON.
table (требуется): имя таблицы базы данных для вставки данных.validation (необязательно): правила проверки для данных.data (требуются): массив записей, которые будут вставлены. validation используется для проверки данных на основе предоставленных правил. Доступны следующие правила проверки:
required : поле не должно быть пустым.string : поле должно быть действительной строкой.name : Поле должно быть действительным именем и без какого -либо целого числа или специальных символов.email : поле должно быть действующим форматом электронной почты.numeric : поле должно быть числовым.min-length:X : поле должно быть как минимум x символами длиной.max-length:X : поле должно быть не более X символами.length:X : поле должно быть ровно x символами длиной.unique : значение поля должно быть уникальным в указанной таблице | Он проверит id во время обновления записи, если он такой же, это просто обновит столбец. body в запросе API {
"table" : " users " ,
"validation" : [
{
"name" : " required|string " ,
"email" : " required|email|unique " ,
"phone" : " required|numeric|unique|length:10 " ,
"password" : " required|min-length:6 " ,
"age" : " optional|numeric "
}
],
"data" : [
{
"name" : " Imdadullah " ,
"email" : " [email protected] " ,
"phone" : " 9992229990 " ,
"password" : " VerySecurePassword " ,
"age" : 22
}
]
}Описание: Этот скрипт получает данные из базы данных на основе указанных параметров.
table (требуется): имя таблицы базы данных для запроса.select (требуется): массив столбцов для выбора. По умолчанию все столбцы (*).join (необязательно): множество пунктов присоединения для выполнения соединений.conditions (необязательно): массив условий с объектом с on , type и value для фильтрации данных.rawConditions (необязательно): массив необработанных условий для фильтрации данных, заставите вас пройти либо conditions , либо rawConditions .order (необязательно): объект с on и type для заказа данных.limit (необязательно): ограничить количество возвращенных записей. body в запросе API {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"conditions" : [
{
"on" : " age " ,
"type" : " >= " ,
"value" : " 18 "
},
{
"on" : " status " ,
"type" : " = " ,
"value" : " active "
},
{
"on" : " email " ,
"type" : " LIKE " ,
"value" : " @gmail.com% "
}
],
"limit" : 10
}body с rawConditions в запросе API {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"rawConditions" : [
" WHERE age >= '18' OR type = 'customer' AND status = 'active' "
]
}body с параметром JOIN Примечание: вам придется упомянуть каждое имя таблицы вместе с именем столбца для использования JOIN
{
"table" : " users " ,
"select" : [
" users.name " ,
" users.email " ,
" items.title " ,
" items.price " ,
" purchases.amount " ,
" purchases.created_at AS purchased_date "
],
"conditions" : [
{
"on" : " purchases.item_id " ,
"type" : " = " ,
"value" : " 102 "
}
],
"join" : [
{
"table" : " purchases " ,
"on" : [ " purchases.user_id " , " users.id " ],
"type" : " LEFT "
},
{
"table" : " items " ,
"on" : [ " items.id " , " purchases.item_id " ],
"type" : " LEFT "
}
]
}Описание: Этот скрипт обновляет существующие записи в базе данных на основе указанных параметров.
table (требуется): имя таблицы базы данных для запроса.data (требуются): массив полей и значений, которые должны быть обновлены.conditions (требуются): множество условий для выявления записей для обновления.validation (необязательно): правила проверки для данных. body в запросе API {
"table" : " users " ,
"data" : [
{
"name" : " Imdadullah Babu " ,
"age" : 22
}
],
"validation" : [
{
"name" : " required|string " ,
"age" : " optional|numeric "
}
],
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}Описание: Этот скрипт удаляет записи из базы данных на основе указанных параметров.
table (требуется): имя таблицы базы данных для удаления.conditions (требуются): множество условий для выявления записей для удаления. body в запросе API {
"table" : " users " ,
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}Описание: Этот скрипт обрабатывает загрузку файлов в указанное место назначения.
fileDestination (требуется): каталог, в котором будут храниться файлы.fileValidation (требуется): разделенный запятой список разрешенных расширений файлов.ПРИМЕЧАНИЕ. Вы можете загрузить несколько файлов одновременно, и это не будет вставлять в вашу таблицу базы данных, вы получите URL в качестве ответа, и вы сможете сохранить его в базе данных.
< script >
const uploadButton = document.getElementById("button");
uploadButton.addEventListener("click", async function () {
const fileInput = document . getElementById ( "file" ) ;
const imageInput = document . getElementById ( "image" ) ;
const file = fileInput . files [ 0 ] ;
const image = imageInput . files [ 0 ] ;
const formData = new FormData ( ) ;
formData . append ( "file" , file ) ;
formData . append ( "image" , image ) ;
formData . append ( "fileDestination" , "files" ) ; // Files will be uploaded to the mentioned destination on the 'uploaded' directory
formData . append ( "fileValidation" , [ "jpg" , "png" , "pdf" ] ) ;
const request = await fetch ( "YOUR_API_REQUEST_ENDPOINT" , {
method : "POST" ,
body : formData ,
} ) ;
const response = await request . json ( ) ;
console . log ( response ) ;
} );
</ script > {
"file": "uploads/files/2024011984368.jpg",
"image": "uploads/files/2024011960039.jpg"
}
Примечание. Настройте и расширяйте сценарии на основе требований вашего проекта. Обеспечить надлежащую проверку, а меры безопасности реализованы в производственной среде.
Для получения дополнительных мер безопасности или пользовательской логики разработчики могут расширить функциональность, добавив свою собственную логику в файл configuration/custom-functions.php . Это предоставляет пространство для включения проверки токена, пользовательской аутентификации или любых других мер безопасности в соответствии с требованиями проекта.
Этот проект был разработан Imdadullah Babu, сценарии стремятся предоставить разработчикам PHP основу для интеграции основных операций базы данных и загрузки файлов в свои проекты без написания повторяющихся кодов.
Этот проект-открытый источник, и мы приветствуем вклады разработчиков по всему миру. Заинтересованы ли вы в добавлении новых функций, улучшении документации, исправлении ошибок или предложении улучшений, ваши вклад ценны.
Вместе мы можем сделать этот проект еще более универсальным и полезным для сообщества разработчиков. Ваш вклад, большой или маленький, высоко ценится.
Спасибо за то, что вы являетесь частью нашего путешествия с открытым исходным кодом!