PHPSLides - это PHP -структура, в основном предназначенная для уже созданных шаблонов фундамента, используемых при создании Router , Api и database management ?
Используйте phpsLides в создании очень основанного защищенного маршрутизатора, API и базы данных, созданной встроенной базой данных шаблонов, которая принимает - база данных MySql & Sqlite также может настроить другую базу данных.
Он по умолчанию в предотвращении инъекций SQL, он предотвращает проект от XXS Attacks & CSRF?
Это хорошая практика для новичка в PHP, чтобы начать с phpsLides
С PHPSlides все запросы, поступающие с сервера, перенаправляются на PHPSlides для проверки маршрутизации. И проверяет, соответствует ли запрос зарегистрированные маршруты, иначе он возвращает страницу 404, не найденную?
Ни один запрос не может получить доступ к каким -либо файлам или папкам в проекте PHPSlides, если не указано в маршрутизации?
По умолчанию он возвращает 404, не найдена страница, если они перемещаются в какие -либо файлы или папки или какие -либо запросы, полученные, если она не была зарегистрирована?
Хотите напрямую посетить файл? Он будет настроен в файле конфигурации слайдов, но может получить доступ только к файлам в общедоступном каталоге.
Также вы можете указать типы файлов для доступа, или указать конкретные расширения, которые могут быть запрошены из каждой папки в публичном каталоге или во всех папках?
Он принимает все типы файлов, изображений, видео, аудио, документов или простых текстов?
Читать phpsLides коды по умолчанию и понять каждую функцию кодов, коды аккуратны и читаемы?
Во -первых, мы создаем наш проект слайдов, выполнив эту команду в вашем терминале, если композитор уже установлен.
composer create-project dconco/php_slides slide_project Где slide_project - это имя проекта, которое вы можете создавать, и это каталог проектов. И он собирается создать проект с указанным именем в целевом каталоге, где вы его установите
Если композитор еще не установлен. Установите его, выполнив:
pkg install composerИ мы все нажаты.
Мы откроем наш проект на VSCODE или PHPSTORM или любых других редакторах PHP.
Давайте начнем наш проект в браузере, вы установите и запустите сервер Apache в вашем XAMPP или на любом другом PHP -сервере. Если вы используете телефон, вы можете использовать AWEBServer для PHP -сервера. И откройте хост в своем браузере, вы увидите шаблон по умолчанию.
Существуют разные методы маршрута запроса. Эти методы маршрута используются получение запроса со стороны клиента
Откройте файл routes/route.php в вашем редакторе. Откройте папку routes , файл route.php . По умолчанию вы увидите, что маршрут панели приборной панели был зарегистрирован, вы можете удалить его, чтобы начать с нуля.
Давайте создадим простые слайды блога в качестве примера. Таким образом, мы зарегистрируем наши маршруты, нам понадобится Login Page , Register , Profile и Posts Page . Давайте зарегистрируем маршруты PURE в файле route.php и примером записи:
<?php
include_once dirname ( __DIR__ ) . " /vendor/autoload.php " ;
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: view ( " /login " , " ::Login " );
?>Этот пример выше объясняется:
Во -первых, мы импортировали наш файл автозагрузки из каталога поставщиков, чтобы мы могли использовать все имена наших классов.
С use PhpSlidesRoute мы используем его для импорта нашего класса маршрута для использования.
Функция Route::config должна быть указана в начале наших кодов. Это делает phpsLides для настройки маршрутов нашего веб -сайта и делает его очень защищенным, что позволяет иметь доступ при настройке маршрутизации и запрошенных путей.
Функция Route::config function принимает 1 логический параметр, который указывает, разрешать ли журналы запрос. По умолчанию это установлено на True. Таким образом, по каждому запросу это записывает информацию о заголовке запроса в файл .log .
И функция Route::view позволяет создавать маршрут просмотра.
Параметры, переданные к нему, будут два, первый параметр указывает маршрут, который следует попросить для визуализации второго параметра.
Вторые параметры отображают файлы в каталоге просмотра, которые могут быть доступны с :: ( двойная толстая кишка ) и имя файла. Любые файлы, которые мы создаем .view.php каталоге View, должны быть в формате fileName fileName.view.php .
Итак, давайте создадим новый файл с именем Login.view.php , поскольку мы зарегистрировали его в маршруте. Затем мы можем написать небольшой пример HTML -код.
<html>
<head>
<title>Login Page</title>
</head>
<body>
<h2>Login Page</h2>
<input type="email" name="emai" />
<input type="password" name="password" />
<button type="submit">Login</button>
</body>
</html>Пример метода получения маршрута
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: get ( " /login " , Route:: view ( " ::Login " ));
?> Вы видите разницу между маршрутом View & Get. По маршруту, вам не нужно получать файл представления с помощью Route::view , вы записывает представление как строку во втором параметре.
Но в маршруте Get 2 -й параметры, которые используются в качестве функции обратного вызова, принимают любые типы кода. Например, струны, массив, функция. Так как он возвращает его непосредственно на сторону клиента. С помощью маршрутов GET, метод запроса конкретного URL на получение должен быть запросом GET, так как все методы маршрутов.
Получить маршрут с методом функции закрытия
Route:: get ( " /login " , function () {
return Route:: view ( " ::Login " );
});Он возвращает страницу просмотра входа в систему, мы можем вернуть любые значения PHP в браузер.
Все методы маршрутов имеют вторые параметры в качестве функции обратного вызова, которая принимает методы функции или любые другие методы.
Получить метод маршрута с параметрами URL с закрытием
Route:: get ( " /posts/{id} " , function ( int $ id ) {
return " Posts ID = " . $ id
});В этом вышеприведенном примере. Зарегистрируйте новый маршрут GET с запросом /сообщениями, который получает запрос получить запрос на получение с параметрами закрытия функции идентификатора. Если запрос был/posts/2, он вернет «id posts = 2», он получает значение идентификатора и отправит его на сторону клиента/браузер.
Пример метода почтового маршрута
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route::post( " /add_user " , ());
?>Он вызывает метод POST, указывает, что функция Post Route может быть выполнена только в том случае, если request_method является запросом POST. И может использоваться в таких данных, как данные формы.
Вторые параметры пусты, могут вернуть формат JSON, поскольку метод POST обычно используется при отправке запроса POST, который возвращает данные в форматах JSON, 2 -е параметры могут содержать любые форматы для функции обратного вызова
Вот как метод маршрута отдыха.
Пример метода пут -маршрута
Route::put( " /user " , ());Метод постановки похож на запрос POST, при добавлении информации или данных в конкретный файл или базу данных.
Пример метода обновления маршрута
Route::update( " /user/{id} " , ());Метод обновления обычно используется при обновлении информации, как в базе данных.
Пример метода удаления маршрута
Route::delete( " /user/{id} " , ());Метод удаления обычно используется, вероятно, при удалении информации в базе данных.
Пример любого метода маршрута
Route::any( " /user/{id} " , ()); С помощью Route::any() метод может использоваться, если вы хотите принять все типы запроса. Может быть либо публиковать, получить, положить, обновить или удалять, в зависимости от запрошенного метода маршрута.
Пример незаконного метода маршрута
Route:: any ( " * " , Route:: view ( " ::errors::404 " )); В приведенном выше примере, не связанном с примером, мы создали любой маршрут и сделаем первый параметр * , который указывает на возврат всякий раз, когда нет маршрутов, соответствующих запрошенному URL.
Незаконтролированный маршрут должен быть в окончании зарегистрированных маршрутов, поэтому он может быть выполнен, когда все вышеупомянутые маршруты не соответствуют.
А во втором параметре мы перемещаемся для view папки и создали папку с именем errors в каталоге view , затем создаем страницу с названием 404.view.php
Вы можете создать URL -адрес многочисленного маршрута, который будет отображать страницу или функцию.
Создайте несколько URL -адресов с массивом и списком URL -адресов в нем. Может использовать любые методы маршрута.
Примечание. Вы не можете использовать несколько URL -адресов при использовании параметров маршрутов с {} Curly Braces
Route:: view ([ " / " , " /index " , " /dashboard " ], " ::dashboard " ); В этом примере объясняется, что всякий раз, когда запрашиваемый URL -адрес соответствует URL -адресам, указанным в массиве, и он отображает dashboard.view.php в браузере. Все методы маршрута принимают несколько URL. Также может создать несколько URL для 404 страницы.
PhpSlides позволяет вам получить доступ к клавишам параметров маршрута в контроллере класса.
Вы можете использовать любые методы маршрута для контроллера маршрутизации, кроме метода просмотра. Пойдем с методом получить.
Мы создаем наш простой компонент класса в каталоге Controller в корневом каталоге вашего проекта.
Перейдите к каталогу Controller и создайте имя контроллера по вашему выбору, но должен быть в этом формате ClassName + Controller.php , который должен быть ClassNameController.php .
Итак, давайте создадим новый контроллер под названием UserController.php . Давайте перейдем к созданному файлу и напишем в нем несколько кодов.
<?php
namespace PhpSlides Controller ;
final class UserController extends Controller
{
public function __invoke ( int $ id ) {
return " <h2>Get User with ID = { $ id } </h2> " ;
}
}
?> В этом примере выше мы создали файл с именем UserController.php в папке /controller .
И мы создали пространство имен для контроллера класса, которое будет использоваться при вызове класса. Мы создали класс под названием UserController и расширяют его до класса Controller , который позволяет вам получить доступ к некоторым защищенным функциям.
Убедитесь, что после каждых созданных компонентов класса, у которых есть пространство имен, вы должны запустить это ниже команду для автоматической загрузки каждого класса.
composer slides-refreshОкончательные ключевые слова в классе описывают, что класс должен быть окончательным и не может быть расширен на другой класс, вы можете удалить его, если класс должен быть расширен.
И мы создаем нашу публичную функцию под названием __invoke, который получает параметр закрытия в маршруте, который будет использоваться для получения параметров URL и возвращает значение для функции обратного вызова. Таким образом, он получает параметры закрытия $ id и описывает его как целое число, используя int перед именем параметра.
Давайте зарегистрируем пользовательские маршруты и сделаем это, чтобы получить маршрут, можно сделать любой тип запроса маршрута в зависимости от использования.
<?php
use PhpSlides Route ;
use PhpSlides Controller UserController ;
Route:: config ();
Route:: get ( " /user/{id} " , [ UserController::class ]);
?> В этом приведенном выше примере мы уже создали класс под названием UserController , и мы создали метод GET Route, который имеет параметр URL id .
Затем мы отображаем класс UserController , который параметр id был отправлен в класс UserController с функцией __invoke .
В нашем контроллере класса мы также можем создать несколько методов для различного запроса маршрута.
<?php
final class UserController extends Controller
{
public function __invoke () {
return " <h2>Invoked User Successful. Receieved all users successfully.</h2> " ;
}
public function User ( $ id ) {
return " <h2>Received an ID - $ id for a user.</h2> " ;
}
}
?> В UserController мы создали другой метод, который называется User() , который принимает один параметр как $id для параметра запроса id .
Итак, давайте использовать метод класса User() в маршруте.
Route:: get ( " /user " , [ UserController::class ]);
Route:: get ( " /user/{id} " , [ UserController::class, ' User ' ]);В первой функции нет параметра URL, потому что в этом случае мы возвращаем всех доступных пользователей, а не каждого пользователя.
И мы создали вторую функцию как /user/{id} , что означает, что мы передали параметр URL id в метод маршрута User() .
Чтобы использовать метод User() , передавая имя метода, которое является User в качестве строки в массив контроллера маршрута, во 2 -м индексе массива может потребоваться только два значения массива.
Можно добавить как можно больше методов, и многие параметры URL, насколько это возможно.
Пример ниже для создания нескольких параметров URL:
Route:: get ( " /user/{id}/post/{post_id} " , function ( $ user_id , $ post_id )
{
return " User ID = $ user_id & Post ID = $ post_id " ;
}); Он имеет два параметра URL, называемые id и post_id для идентификатора пользователя и идентификатора POST, затем мы получаем параметры URL в параметре функции закрытия. То же самое, что и метод контроллера маршрута.
Но убедитесь, что переменная закрытия функции не может быть такой же, иначе она может превратить конфликт, но параметры URL могут быть одинаковыми.
Конфигурации в PHPSLides, что позволяет вам иметь полный доступ в настройке запроса, который может быть отправлен/получен в маршрутах. И конфигурации маршрутизации могут быть настроены в файле phpslides.config.json .
По умолчанию повсюду в Интернете будут пустыми, даже если они перемещаются на любые страницы. Таким образом, веб -маршрутизация используется для добавления страниц в Интернет, если они перейдут на какие -либо ссылки, она вернет страницу для URL. И если настройка Not Found page , она будет использоваться всякий раз, когда страница не существует.
По умолчанию, если они откроют какие -либо URL -адреса для любого пути страницы, Интернет будет пустой, если не будет добавлена Not Found page поэтому она вернет ее, потому что ваш сайт защищенным, они могут получить доступ только к той части, к которой вы хотите получить доступ.
И конфигурации в phpsLides позволяют легко настраивать деталь, которую может просматривать пользователь, чтобы создать очень защищенный веб -сайт. Поскольку они могут просматривать любые файлы в публичной папке, но не могут просматривать там папки, кроме маршрутизации.
_Example of Configuration в PHPSlides
Откройте phpslides.config.json в корневом каталоге вашего проекта.
{
"charset" : " UTF-8 "
}В этом приведенном выше примере указывается Charsets, которые будут использоваться при возвращении всех файлов и страниц маршрутизации в Clower. Но может изменить его в любое время с помощью PHP -кода, если вы хотите изменить какую -то часть.
{
"public" : {
"/" : [ " * " ]
}
} Мы добавили public ключ в файле JSON, который указывает на то, что внутри public каталога файлы и вложенные файлы в папках, которые он может получить
Мы добавили / ключ, который указывает корень public каталога. Итак, мы добавили, что это имеет * (звездочка) . Что указывает на доступ ко всем файлам в корне public каталога. И мы можем указать любой тип расширений, к которым они могут получить доступ, даже если файл существует, и они пытаются получить доступ к файлу, что расширение недоступно в CConfiguration, он вернет Not Found page . Они могут написать несколько экстенсов в массиве. И также может написать image , в котором они могут получить доступ ко всем изображениям, video или audio .
"/" : [ " image " , " audio " , " video " ] На каждом вложенном папках внутри public каталога будут указаны как массив расширений в файле конфигурации. И если вы хотите разрешить все вложенные папки, вы просто указали папку в файле JSON и расширение, которое она может разрешить во всех вложенных каталогах.
Как скажем, каталоги в этом формате:
public:
assets:
image.jpg
file.pdf
vendor:
bootstrap.min.js
images:
image.png
image1.jpg
file.html
Таким образом, этот пример объясняется: в public каталоге у нас есть папка assets и images . Таким образом, в папке assets у нас есть 1 изображение, 1 PDF -файл и 1 папку vendor , которые содержат bootstrap.min.js . Поэтому, если мы хотим настроить это ::
{
"public" : {
"assets" : [ " jpg " , " js " ],
"images" : [ " image " , " video " ]
}
} В этом примере мы создали только конфигурации для каталога assets и images , поэтому все файлы и папки в каталоге assets будут использовать расширения, добавленные в каталоге assets , в которых указывается, что в этом примере указанное расширение js также будет разрешено также в папке vendor , или мы добавляем ключ vendor в файл JSON.
Таким образом, когда мы настраиваем каталог assets они могут получить доступ только к файлу jpg и файлу js в папке vendor .
Для каталога images мы указали, что он может получить доступ только к любым файлам, которые являются image или video , поэтому он позволяет там двум файлам, которые являются png & jpg и возвращаются Not Found page когда они пытаются получить доступ к file.html , какое расширение не добавлено.
Чтобы просмотреть все файлы, которые находятся в public каталоге с файлами в вложенных папках. Вы не добавляете public папку перед получением файлов, она вернет Not Found page . Таким образом, как приведенный выше пример, чтобы получить доступ к файлу в папке assets . Мы будем следовать URL: http://localhost:8000/assets/image.jpg , а не http://localhost:8000/public/assets/image.jpg . И если файлы находятся в корневом каталоге проекта, к ним обратится непосредственно после URL -адреса хоста: http://localhost:8000/image.jpg .
В этой версии Slides обеспечивает возможность работы с страницей просмотра Создайте файл шаблона представления в каталоге views в этом расширении fileName формата + .view.php . который является fileName.view.php
PHPSlides создали какой -то особый синтаксис представления.
<? ?>Давай начнутся ..
<! DOCTYPE html>
<html>
<!-- Php codes if needed -->
<?
?>
<head>
<!-- Meta Tags Info -->
<title>Page Title</title>
</head>
<body>
<!-- Body contents -->
</body>
</html> На странице шаблона представления, где мы записывают коды HTML, тег PHP не должен запускаться файл, вместо этого записывать тег PHP и коды внутри тега <html> или в других местах, кроме запуска, всегда должны начинать документы HTML с тегом <html> , а не <?php Tag
<? ?> Тэг в шаблоне представления - это короткий тег PHP, используемый в написании коротких кодов PHP. как использование оператора if или повторить данные на HTML -странице. Примеры кодов:
<body>
<? if ( $ user ): ?>
<h1>Hello <? @view $ user ?> </h1>
<? else : ?>
<h1>Hello Guest</h1>
<? endif ; ?>
<p>
<? @view ' welcome to our blog spot! ' ?>
</p>
</body> Этот пример объясняется как: В элементе корпуса мы проверяем, возвращает ли пользователь true, тогда он добавит элемент h1 с текстом Hello с значением переменной пользователя, которое возвращается с помощью ключевого слова @View в слайдах. В противном случае он вернется, а элемент h1 с текстом Hello Guest В теге <p> мы написали коды PHP, который использует ключевое слово @view , чтобы вернуть строку/значение в элемент <p> .
:: view & :: root
::view - это всего лишь слово, написанное только в файлах шаблона представления, которые возвращают местоположение корня после имени сервера в проекте, начиная с / . Обычно используется для связи публичных файлов. А ::root возвращает корневое местоположение вашего проекта и не имеет ::view , ::root используется в PHP, включая любые файлы проекта, но ::view может только получить доступ только к тому, что может принять участие в браузере/клиенте, но не может получить доступ к каким -либо файлам в проекте, когда не в public каталоге.
Теперь давайте представим, что у нас есть изображения, которые мы получим бы в публичном каталоге и дополнительном файле PHP, который мы должны были бы включить на страницу просмотра.
<body>
<? include ' ::root/components/extraFile.php ' ?>
<div>
<img src="::view/assets/icon.png" alt="Icon" />
</div>
</body> В этом случае корень проекта обозначен как ::root , а внутри проекта мы создали папку, называемую components , и новый файл с именем extraFile.php для любых кодов PHP для включения в страницу просмотра.
::view это корневое местоположение хоста сервера, так что давайте представим URL -адрес хоста как http://localhost:8000/ так что он указан как ::view и обычно на слайдах, все файлы и папки в public каталоге расширяются в корне URL как ::view/ и not ::view/public
Таким образом, URL AS ::view/assets/icon.png в public каталоге создал папку assets и icon.png Image.
Slides предоставляет вам возможность включить другой файл шаблона представления на страницу просмотра, а не только файлы PHP.
2 способа включения страницы просмотра
<include !/> Htmlslides_include С тегом <include !/> HTML вы можете включить другую страницу PHP/View на текущую страницу просмотра. Который позволяет писать шаблон вида слайдов в другие файлы, чтобы включить. И также может включить любой другой файл PHP, расположенный в любом месте проекта.
< body >
< include path =" ::root/components/extraFile.php " ! />
< include path =" ::root/views/viewPage.view.php " ! />
</ body > Таким образом, в первом теге мы включили файл PHP, расположенный в каталоге components . И второй тег, который мы включили файл шаблона представления, расположенный в каталоге views . И может использовать тег <include !/> На странице шаблона представления.
slides_include
Эта функция предоставляет вам способ включить файлы просмотра в любом файле PHP, а не только на странице шаблона представления.
<? @view slides_include ( ' ::root/comp/extraFile.php ' ) ?>
<? @view slides_include ( ' ::root/views/page.view.php ' ) ?> PHPSlides Regaled API в -V1.2.0, что позволяет вам работать с API в вашем проекте. API похож на маршрут, но он возвращает данные обратно в запрос, а не в браузер. Слайды предоставляют функцию Api , которая позволяет зарегистрировать маршрут API. И установил контроллер API в файле web.php . Зарегистрируйте свой новый маршрут API в файле routes/api.php
<?php
use PhpSlides Api ;
Api:: get ();
Api:: post ();
Api:: put ();
Api:: patch ();
Api:: update ();
Api:: delete ();
?> В приведенных выше примере блоков кода мы создаем API, и это метод запроса API, которые доступны в API. Функция Api принимает только 2 параметра, URL -адрес маршрута API, а второй параметр - метод класса контроллера.
Обратите внимание, что прежде чем вы сможете создать API, убедитесь, что вы установили функцию Route::config() в файле route.php , даже если вы не должны использовать веб -маршрут.
Давайте создадим API для данного маршрута запроса "/api/users" с помощью метода POST, который покажет список доступных пользователей в базе данных. И создать другой маршрут "/api/users/{id}" также метод POST, который покажет конкретного пользователя с помощью данного идентификатора.
<?php
use PhpSlides Api ;
Api:: post ( " /api/users " );
Api:: post ( " /api/users/{id} " , @user);
?> Таким образом, в первом API мы не предоставили второй параметр для метода, который по умолчанию является методом __invoke . А во втором мы используем @user , который объявляет user метод того же класса контроллера. @ Целевая название метода класса контроллера.
Давайте сначала создадим наш класс контроллера в каталоге Controller/Api . Давайте назваем это UserController . В наших именах контроллера необходимо Controller , чтобы закончить файл, который описывает файл контроллера.
<?php
namespace PhpSlides Controller ;
final class UserController extends Controller
{
function __invoke () {
$ response = [ ' data ' => ' We have gotten all users id successful ' ];
return json_encode ( $ response );
}
function user ( int $ id ) {
$ response = [ ' data ' => ' The particular user id = $id ' ];
return json_encode ( $ response );
}
}
?> В классе UserController мы создали два функциональных метода и перенаправляем кодированный формат JSON.
Еще не сделано .. Нам нужно зарегистрировать каждый URL -адрес API маршрутов для класса контроллера в файле src/web.php .
<?php
use PhpSlides Controller UserController ;
return [
' /api/users ' => UserController::class,
' /api/users/{id} ' => UserController::class
];
?>Мы вернули маршруты API Register API, теперь готов к употреблению ❤?
Ура, как вам нравится использовать phpslides !!!
Больше функций в следующих версиях