PHPSLIDESは、主にRouter 、 Api 、およびdatabase management作成に使用される既に作成された基礎テンプレート向けに設計されています。
非常にベースのセキュリティ済みルーター、APIおよびデータベースの作成にphpslidesを使用して、 MySql & Sqliteデータベースを受け入れる組み込みテンプレートデータベースを作成しました。
デフォルトでは、SQL注入を防止する際に、XXS攻撃&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エディターでプロジェクトを開きます。
ブラウザでプロジェクトを開始しましょう。XAMPPまたは他のPHPサーバーでApacheサーバーをセットアップして起動します。電話を使用している場合は、PHPサーバーにAwebserverを使用できます。ブラウザでホストを開くと、デフォルトのテンプレートが表示されます。
リクエストルートにはさまざまな方法があります。このルートメソッドは、クライアント側からのリクエストを受信します
エディターでroutes/route.phpファイルを開きます。 routesフォルダー、The route.phpファイルを開きます。デフォルトでは、ダッシュボードルートが登録されていることがわかり、ゼロから開始するために削除できます。
例として簡単なブログスライドを作成しましょう。そのため、ルートを登録し、 Login Page 、 Register 、 Profile 、 Posts Pageが必要です。 route.phpファイルにpurrouteを登録して、例を書きましょう。
<?php
include_once dirname ( __DIR__ ) . " /vendor/autoload.php " ;
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: view ( " /login " , " ::Login " );
?>上記のこの例について説明します:
まず、すべてのクラス名を使用できるように、ベンダーディレクトリからAutoLoadファイルをインポートしました。
use PhpSlidesRouteと、使用するルートクラスのインポートに使用します。
Route::config関数は、コードの先頭に指定する必要があります。 Webサイトのルートを構成するためにphpslidesを作成し、非常にセキュリティで、ルーティングと要求されたパスの構成にアクセスできるようになります。
Route::config関数は、ログ要求を許可するかどうかを示す1ブールパラメーターを取ります。デフォルトでは、Trueに設定されています。そのため、各リクエストで、 .logファイルにリクエストヘッダーの情報を書き込みます。
Route::view関数を使用すると、ビュールートを作成できます。
渡されたパラメーターは2つになります。最初のパラメーターは、2番目のパラメーターをレンダリングするために要求するルートを指定します。
2番目のパラメーターは、::( double colon )とファイル名でアクセスできるビューディレクトリ内のファイルをレンダリングします。ビューディレクトリで作成するファイルは、 fileNameビューファイルの名前であり、 fileName.view.phpがファイル拡張子であるため、 .view.phpの形式である必要があるため、phpslidesはビューファイルであることに気付くでしょう。
それでは、ルートで登録したときに、 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>Get Routeメソッドの例
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route:: get ( " /login " , Route:: view ( " ::Login " ));
?>ビューとゲットルートの違いがわかります。ビュールートでは、 Route::viewを使用してビューファイルを取得する必要はありません。2番目のパラメーターの文字列としてビューを書き込みます。
ただし、Get Routeでは、コールバック関数として使用される2番目のパラメーターは、あらゆる種類のコードを取得します。たとえば、文字列、配列、関数。クライアント側に直接返すため。 Get Routesを使用すると、すべてのルートがメソッドのように、受信する特定のURLのリクエスト方法がGet Requestでなければなりません。
閉鎖関数メソッドを使用してルートを取得します
Route:: get ( " /login " , function () {
return Route:: view ( " ::Login " );
});ログインビューページを返し、PHP値をブラウザに返すことができます。
すべてのルートメソッドには、関数メソッドまたはその他の方法を使用するコールバック関数として2番目のパラメーターがあります。
閉鎖を備えたURLパラメーターを使用してルートメソッドを取得します
Route:: get ( " /posts/{id} " , function ( int $ id ) {
return " Posts ID = " . $ id
});この上記の例は、IDの関数閉鎖パラメーターを使用してGet Requestを受信する /投稿の新しいGet Routeを登録します。リクエストが/post/2の場合、「ID = 2」を返します。ID値を取得し、クライアント側/ブラウザに送信します。
ポストルート方法の例
<?php
use PhpSlides Route ;
use PhpSlides view ;
Route:: config ();
Route::post( " /add_user " , ());
?>POSTメソッドを呼び出します。これは、Request_MethodがPOSTリクエストである場合にのみ、ポストルート関数を実行できることを示します。フォームデータの送信などで使用できます。
2番目のパラメーターは空で、JSON形式を返すことができます。これは、JSON形式でデータを返すPOSTリクエストを送信する際にPOSTメソッドが使用されるため、2番目のパラメーターはコールバック関数の任意の形式を含めることができるため
それがRESTルートの方法です。
パットルートメソッドの例
Route::put( " /user " , ());Put Methodは、特定のファイルまたはデータベースに情報またはデータを追加する際の投稿リクエストのようなものです。
更新ルート方法の例
Route::update( " /user/{id} " , ());更新方法は、通常、データベースのような情報の更新に使用されます。
削除ルートメソッドの例
Route::delete( " /user/{id} " , ());削除メソッドは、通常、データベースの情報を削除する際に使用される可能性があります。
任意のルート方法の例
Route::any( " /user/{id} " , ()); Route::any()メソッドを使用すると、あらゆる種類のリクエストを受け入れる場合は使用できます。要求されたルートメソッドに応じて、投稿、取得、取得、更新、削除のいずれかにすることができます。
動物のないルートメソッドの例
Route:: any ( " * " , Route:: view ( " ::errors::404 " ));上記のない例では、任意のルートを作成し、最初*パラメーターを作成します。
動かないルートは登録ルートの終了時にある必要があるため、上記のルートがすべて不一致になったときに実行できます。
2番目のパラメーターでは、フォルダーviewためにナビゲートし、 viewディレクトリ内にerrorsという名前のフォルダーを作成し、 404.view.phpというページを作成しました。
ページまたは関数をレンダリングする複数のルートURLを作成できます。
ArrayとURLのリストを含む複数のURLを作成します。任意のルートメソッドを使用できます。
注: {} curlyブレースを使用してルートパラメーターを使用する場合、複数のURLを使用することはできません
Route:: view ([ " / " , " /index " , " /dashboard " ], " ::dashboard " );この例では、要求されたURLが配列で指定されたURLと一致し、ブラウザでdashboard.view.phpをレンダリングするたびに説明します。すべてのルートメソッドは複数のURLを受け入れます。 404ページの複数のURLを作成することもできます。
PhpSlides使用すると、クラスコントローラーのルートパラメータキーにアクセスできます。
ビューメソッドを除くルーティングコントローラーには、任意のルートメソッドを使用できます。 Get Methodを使用してみましょう。
プロジェクトのルートディレクトリにあるControllerディレクトリにシンプルなクラスコンポーネントを作成します。
Controllerディレクトリに移動し、選択したコントローラー名ClassNameController.php作成しますが、この形式のClassName + Controller.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> " ;
}
}
?>上記のこの例では、 /controllerフォルダーにUserController.phpというファイルを作成しました。
また、クラスの呼び出しに使用されるクラスコントローラー用の名前空間を作成しました。 UserControllerというクラスを作成し、 Controllerクラスに拡張します。これにより、保護された機能にアクセスできます。
名前空間を持つクラスコンポーネントを作成したすべてのコンポーネントの後、各クラスの自動装置のためにこのコマンドを実行する必要があります。
composer slides-refreshクラスの最終的なキーワードは、クラスを最終的にする必要があり、別のクラスに拡張できないことを説明しています。クラスを拡張する必要がある場合は削除できます。
また、ルートでクロージャーパラメーターを取得する__ invokeと呼ばれるパブリック関数を作成します。これは、URLパラメーションを取得し、コールバック関数の値を返すために使用されます。したがって、クロージャー$ IDパラメーターを取得し、PARAM名の前にintを使用して整数として説明します。
ユーザールートを登録して、ルートを取得するようにしましょう。使用法に応じて、あらゆるタイプのルートリクエストを作成できます。
<?php
use PhpSlides Route ;
use PhpSlides Controller UserController ;
Route:: config ();
Route:: get ( " /user/{id} " , [ UserController::class ]);
?>この上記の例では、 UserControllerというクラスを既に作成し、 idのURLパラメーターを持つGETルートメソッドを作成しました。
次に、 UserControllerクラスをレンダリングします。これは、 idパラメーターが__invoke関数を使用してUserControllerクラスに送信されました。
クラスコントローラーでは、異なるルートリクエストの複数のメソッドを作成することもできます。
<?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では、 id URL要求パラメーターの1つのパラメーターを$idとして使用するUser()という別のメソッドを作成しました。
ルートでUser()クラスメソッドを使用しましょう。
Route:: get ( " /user " , [ UserController::class ]);
Route:: get ( " /user/{id} " , [ UserController::class, ' User ' ]);最初の関数には、各ユーザーではなく、利用可能なすべてのユーザーを返すため、URLパラメーターはありません。
また、2番目の関数として/user/{id}を作成しました。つまり、 id URLパラメーターをUser()ルートメソッドに渡しました。
Arrayの2番目のインデックスで、ルートコントローラーアレイに文字列として文字列として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 " ;
});ユーザーidとpost_id IDとPOST_IDと呼ばれる2つのURLパラメーターがあり、閉鎖関数パラメーターにURLパラメーターを取得します。ルートコントローラーメソッドと同じ。
ただし、関数閉鎖パラメーター変数が競合する可能性がある他のものと同じではないことを確認してください。ただし、URLパラメーターは同じである可能性があります。
phpslidesの構成により、ルーティングでリクエストを送信/受信できる方法の構成に完全にアクセスできます。ルーティング構成は、 phpslides.config.jsonファイルで設定できます。
デフォルトでは、Web内のどこでも、任意のページに移動しても空白になります。したがって、Webルーティングは、リンクに従ってページを追加するためにページを追加するために、URLのページを返します。また、Setupped Not Found page場合は、ページが存在しない場合はいつでも使用されます。
デフォルトでは、ページのパスにURLを開くと、Webがアクセスしたいパーツを保護するために、アクセスしたい部品にアクセスできるため、WebがNot Found pageを追加しない限り、Webは空白になります。
また、phpslidesの構成により、ユーザーが表示できるパーツを構成したり、非常にセキュリティで保護されたWebサイトを作成したりできるようにします。パブリックフォルダー内のファイルのみを表示できますが、ルーティングとは別にフォルダーを表示できません。
_Phpslidesの構成の例
プロジェクトのルートディレクトリでphpslides.config.json開きます。
{
"charset" : " UTF-8 "
}この上の例は、すべてのファイルとルーティングページをブロワーに返す際に使用する充電器を指定します。ただし、一部を変更したい場合は、PHPコードでいつでも変更できます。
{
"public" : {
"/" : [ " * " ]
}
} JSONファイルにpublicキーを追加しました。これは、 publicディレクトリ内で、アクセスできるフォルダー内のファイルとネストされたファイルを指定します。
publicディレクトリのルートを指定する/キーを追加しました。そこで、 * (アスタリスク)があると付け加えました。 publicディレクトリのルート内のすべてのファイルにアクセスするように指定しています。また、ファイルが存在し、拡張機能がcconfigurationで使用できNot Found pageファイルにアクセスしようとする場合でも、アクセスできる任意のタイプの拡張機能を指定できます。アレイに複数の拡張機能を記述できます。また、すべての画像、 video 、またはaudioにアクセスできるimageを書くこともできます。
"/" : [ " 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ファイル、およびbootstrap.min.jsを含む1つのvendorフォルダーがあります。だから私たちがそれを構成したいなら::
{
"public" : {
"assets" : [ " jpg " , " js " ],
"images" : [ " image " , " video " ]
}
}この例では、 assets and images Directoryの構成のみを作成したため、 assets Directory内のすべてのファイルとフォルダーは、この例で指定されたjs拡張機能がvendorフォルダーにも許可されることを指定するassets Directoryに追加されたvendor機能を使用します。
したがって、 assets Directoryを構成すると、 vendorフォルダーのjpgファイルとjsファイルのみにアクセスできます。
imagesディレクトリの場合、 imageまたはvideoであるファイルのみにアクセスできることを指定したため、 png &jpgであり、 file.htmlにアクセスしようとするたびにpng& jpgである2つのファイルがNot Found pageことを許可します。
ネストされたフォルダーにファイルを備えた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はビューページを扱う方法を提供します。この形式のfileName + .view.php拡張機能で、ビューテンプレートファイルをviewsディレクトリで作成します。 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タグはファイルを起動するのではなく、代わりに<html>タグまたは開始以外の場所に<html>タグとコードを記述する必要があります<?php
<? ?>ビューテンプレートのタグは、短い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を返すかどうかを確認します。スライドの@viewキーワードを使用して返されるユーザー変数値で、テキストでh1要素を追加します。それ以外の場合は、 @viewキーワードを使用して文字列/値を<p>要素に返すPHPコードを作成した<p>タグにテキストのhello guestを添えて返すとh1要素があります。
::表示&:: root
::view /から始まるプロジェクトのサーバー名の後にルートの場所を返すビューテンプレートファイルでのみ書かれた単語です。通常、パブリックファイルをリンクするために使用されます。 ::rootプロジェクトのルート位置を返しており、 ::view 、 ::rootはプロジェクトのファイルを含めるためにPHPで使用されていませんが、 ::viewブラウザ/クライアント側がaccesできるもののみにアクセスできますが、 publicディレクトリにない場合はプロジェクトのファイルにアクセスできません。
ここで、パブリックディレクトリにアクセスする画像と、表示ページに含める必要がある追加のPHPファイルがあると想像してみましょう。
<body>
<? include ' ::root/components/extraFile.php ' ?>
<div>
<img src="::view/assets/icon.png" alt="Icon" />
</div>
</body>この場合、プロジェクトのルートは::rootおよびプロジェクト内で示されます。プロジェクト内部は、任意のPHPコードのextraFile.phpというcomponentsと呼ばれる新しいファイルを作成しました。
::viewサーバーホストのルート位置です。ホストURLをhttp://localhost:8000/として想像してみましょう。したがって、 ::view 、通常はスライドで、 publicディレクトリ内のすべてのファイルとフォルダーは::view/ and not ::view/public
したがって、URLは::view/assets/icon.png publicディレクトリに、 assetsフォルダーとicon.pngイメージを作成しました。
スライドは、PHPファイルだけでなく、ビューページに別のビューテンプレートファイルを含める方法を提供します。
ビューページを含める2つの方法
<include !/> htmlタグを使用しますslides_include php関数を使用します<include !/> HTMLタグを使用すると、現在のビューページに他のPHP/ビューページを含めることができます。これにより、他のファイルにスライドビューテンプレートを記述することができます。また、プロジェクトのどこにでもある他のPHPファイルを含めることもできます。
< body >
< include path =" ::root/components/extraFile.php " ! />
< include path =" ::root/views/viewPage.view.php " ! />
</ body >そのため、最初のタグには、 componentsディレクトリにあるPHPファイルを含めました。 2番目のタグには、 viewsディレクトリにあるビューテンプレートファイルを含めました。ビューテンプレートページに<include !/>タグのみを使用できます。
slides_include
この関数は、ビューテンプレートページだけでなく、任意のPHPファイルにビューファイルを含める方法を提供します。
<? @view slides_include ( ' ::root/comp/extraFile.php ' ) ?>
<? @view slides_include ( ' ::root/views/page.view.php ' ) ?> Phpslides -V1.2.0でAPIを実現します。これにより、プロジェクトでAPIを使用できます。 APIはルートのようなものですが、ブラウザではなくリクエストにデータを戻しています。スライドは、APIルートを登録できるApi関数を提供します。 web.phpファイルにAPIコントローラーを設定しました。 routes/api.phpファイルに新しいAPIルートを登録します
<?php
use PhpSlides Api ;
Api:: get ();
Api:: post ();
Api:: put ();
Api:: patch ();
Api:: update ();
Api:: delete ();
?>上記のコードブロックの例では、APIを作成します。これらはAPIで使用できるAPI要求方法です。 Api関数は2つのパラメーターのみを取得します。APIルートURLと2番目のパラメーターはコントローラークラスメソッドです。
APIを作成する前に、Webルートを使用していない場合でも、 route.phpファイルでRoute::config()関数を設定したことに注意してください。
データベース内の利用可能なユーザーのリストを表示する投稿メソッドを使用して、指定されたリクエストルート"/api/users"のAPIを作成しましょう。また、別のルート"/api/users/{id}"を作成します。また、指定されたIDで特定のユーザーを表示する投稿メソッドも作成します。
<?php
use PhpSlides Api ;
Api:: post ( " /api/users " );
Api:: post ( " /api/users/{id} " , @user);
?>したがって、最初のAPIでは、デフォルトで__invokeメソッドであるメソッドを使用する2番目のパラメーターを提供しませんでした。 2番目に、同じコントローラークラスの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クラスでは、2つの機能的な方法を作成し、エンコードされたJSON形式をRETUNしました。
まだ完了していません。SRC src/web.phpファイルでコントローラークラスの各APIルートURLを登録する必要があります。
<?php
use PhpSlides Controller UserController ;
return [
' /api/users ' => UserController::class,
' /api/users/{id} ' => UserController::class
];
?>Register APIルートを返しました。APIは消費する準備ができています。
phpslidesの使用を楽しんでいるので!!!
より多くの機能が次のバージョンに登場しています