sql >> データベース >  >> RDS >> Mysql

PDO AdvancedCRUDGeneratorツールを使用してPHPCRUDインターフェイスをすばやく構築する

    このチュートリアルでは、フォームビルダーおよびデータベース管理ツールであるPDOCRUDを確認します。 PDO CRUDを使用すると、わずか数行のコードでデータベーステーブルのフォームを作成できるため、データベースアプリケーションをすばやく簡単にブートストラップできます。

    データベースの抽象化、特にPHPとMySQLのCRUD(作成、読み取り、更新、削除)の生成に使用できる拡張機能はたくさんあります。そしてもちろん、すぐに使用できる機能と拡張サポートを提供する商用オプションもあります。商用オプションの場合、高品質のコード、バグ修正、および新しい拡張機能も期待できます。

    今日は、CodeCanyonで非常にリーズナブルな価格で購入できるPDOCRUDツールについて説明します。これは完全なCRUDビルダーツールであり、データベーステーブルを提供し、数行のコードを記述するだけでアプリケーションを構築できます。

    MySQL、Postgres、SQLiteなどの複数のデータベースバックエンドで動作します。この高度なPHPCRUDチュートリアルでは、PDOCRUDを使用してMySQLデータベースバックエンドでCRUDシステムを構築する方法を説明します。

    注:SiquieresaprendercómohacerunCRUDen PHP y mySQL、daclicaquí

    インストールと構成

    このセクションでは、CodeCanyonからツールを購入してダウンロードした後、PDOCRUDツールをインストールして構成する方法を説明します。

    購入するとすぐに、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"] = "https://my-demo-app";
    /************************ database ************************/
    //Set the host name to connect for database
    $config["hostname"] =  "localhost";
    //Set the database name
    $config["database"] = "demo_app_db";
    //Set the username for database access
    $config["username"] = "demo_app";
    //Set the pwd for the database user
    $config["password"] = "demo_app";
    //Set the database type to be used
    $config["dbtype"] = "mysql"

    ご覧のとおり、詳細は一目瞭然です。 $config["script_url"] サイトへのアクセスに使用するURLに設定されます。

    データベースの詳細を保存すると、PDOCRUDツールを使用できるようになります。この例では、従業員と部門のデータを保持する2つのMySQLテーブルを作成します。

    • 従業員 :従業員情報を保持します
    • 部門 :部門情報を保持します

    データベース管理ツールを開き、次のコマンドを実行して、上記で説明したようにテーブルを作成します。 phpMyAdminを使用してMySQLデータベースのバックエンドを操作しています。

    まず、部門テーブルを作成しましょう。

    CREATE TABLE `department` (
      `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `department_name` varchar(255) NOT NULL DEFAULT ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    次に、employeeテーブルを作成します。

    CREATE TABLE `employee` (
      `id` int(12) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `dept_id` int(11) UNSIGNED NOT NULL,
      `first_name` varchar(255) NOT NULL DEFAULT '',
      `last_name` varchar(255) NOT NULL DEFAULT '',
      `email` varchar(255) NOT NULL DEFAULT '',
      `phone` varchar(255) NOT NULL DEFAULT ''
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    ご覧のとおり、dept_idを使用しました 部門テーブルに格納されている対応する部門のIDを保持するemployeeテーブルの列。

    データベースにテーブルを作成したら、PDOCRUDツールを使用してCRUDアプリケーションインターフェースを構築する準備が整います。

    基本的なCRUDの設定方法

    このセクションでは、数行のコードを記述するだけで、PDOCRUDツールを使用して基本的なCRUDインターフェースを設定する方法を説明します。

    部門テーブル

    部門テーブルから始めましょう。

    department.phpを作成しましょう 以下の内容で。ドキュメントルートが/web / demo-app / public_html /の場合 、 department.phpを作成します /web/demo-app/public_html/department.phpにあるファイル 。スクリプトディレクトリを/web / demo-app / public_html / scriptにすでにコピーしていることを思い出してください 。

    <?php
    require_once "script/pdocrud.php";
    
    $pdocrud = new PDOCrud();
    echo $pdocrud->dbTable("department")->render();

    そして今、あなたがブラウザを department.phpに向けると ファイルの場合、次のように表示されます。

    ふぅ!たった2行のコードで、すぐに使用できるCRUD UIを使用して、モデルで必要なすべての作成、読み取り、更新、削除のアクションを実行できます。デフォルトのリストビュー自体には、次のような多くの機能が含まれていることは言うまでもありません。

    • 検索
    • 組み込みのページネーション
    • 印刷
    • レコードをCSV、PDF、またはExcel形式にエクスポート
    • 一括削除操作
    • 列による並べ替え

    追加をクリックします 右側のボタンをクリックすると、フォームが開いて部門レコードを追加できます。

    追加を使用していくつかのレコードを追加しましょう ボタンをクリックして、どのように見えるかを確認してください。

    ご覧のとおり、これはかなり軽量ですっきりとしたインターフェースです。ほとんど労力をかけずに、部門モデル用のCRUDを作成しました。次に、employeeテーブルに対して同じことを行う方法を説明します。

    従業員テーブル

    このセクションでは、employeeテーブルのCRUDを作成する方法を説明します。 employee.phpを作成しましょう 以下の内容で。

    <?php
    require_once "script/pdocrud.php";
    
    $pdocrud = new PDOCrud();
    echo $pdocrud->dbTable("employee")->render();

    前回とほぼ同じコードです。テーブルの名前を変更するだけです。 追加をクリックした場合 ボタンをクリックすると、従業員レコードを追加できる素敵なフォームも表示されます。

    部門IDという1つの問題を発見した可能性があります fieldはテキストフィールドですが、部門の名前を含むドロップダウンとして使用することをお勧めします。これを実現する方法を見てみましょう。

    <?php
    require_once "script/pdocrud.php";
    
    $pdocrud = new PDOCrud();
    
    // get departments
    $data =  $pdocrud->getPDOModelObj()->select("department");
    $options = array();
    foreach($data as $record) {
        $options[$record['id']] = $record['department_name'];
    }
    
    // change the type of the dept_id field from textfield to select dropdown
    $pdocrud->fieldTypes("dept_id", "select");
    $pdocrud->fieldDataBinding("dept_id", $options, "", "","array");
    
    echo $pdocrud->dbTable("employee")->render();

    このコードでは、PDO CRUDを介して部門テーブルにアクセスしているため、部門名を部門IDに関連付けることができます。次に、部門IDフィールドのバインドオプションを更新して、ドロップダウンとして表示されるようにしました(select )リスト。

    次に、追加をクリックします それがどのように見えるかを見るためのボタン! 部門IDが表示されます フィールドがドロップダウンに変換されました!

    いくつかの従業員レコードを追加して、従業員リストがどのように表示されるかを見てみましょう。

    よさそうだ!ただし、ここにはもう1つの小さな問題があります。それは、部門IDであることがわかります。 列には部門のIDが表示されますが、代わりに実際の部門名を表示すると便利です。これを達成する方法を見つけましょう!

    employee.phpのコードを修正しましょう 以下の内容で。

    <?php
    require_once "script/pdocrud.php";
    
    $pdocrud = new PDOCrud();
    
    // change the type of the dept_id field from textfield to select dropdown
    $data =  $pdocrud->getPDOModelObj()->select("department");
    $options = array();
    foreach($data as $record) {
        $options[$record['id']] = $record['department_name'];
    }
    $pdocrud->fieldTypes("dept_id", "select");
    $pdocrud->fieldDataBinding("dept_id", $options, "", "","array");
    
    $pdocrud->crudTableCol(array("first_name","last_name", "department_name", "email","phone"));
    $pdocrud->joinTable("department", "employee.dept_id = department.id", "INNER JOIN");
    echo $pdocrud->dbTable("employee")->render();

    ここでは、$pdocrud->joinTableを使用して従業員テーブルと部門テーブルの間に結合を作成しました。 、次にPDO CRUDに、従業員名、部門名、連絡先情報のみを$pdocrud->crudTableColでレンダリングするように指示しました。 。

    この変更により、従業員のリストは次のようになります。

    ご覧のとおり、PDO CRUDスクリプトは非常に柔軟性があり、UIをカスタマイズするためのあらゆるオプションを使用できます。

    これまで、基本的なCRUDインターフェースを設定する方法について説明してきました。次のセクションでは、CRUDUIを拡張およびカスタマイズするために使用できるオプションをさらにいくつか紹介します。

    カスタマイズオプション

    このセクションでは、PDOCRUDツールによって提供されるいくつかのカスタマイズオプションについて説明します。もちろん、PDO CRUDツールは1つの記事でカバーできるよりもはるかに多くの機能を提供するため、すべてのオプションを実行することはできませんが、いくつかの重要なオプションを強調します。

    インライン編集

    インライン編集は最も重要な機能の1つであり、リストページ自体でレコードをすばやく編集できます。部門リストページで有効にする方法を見てみましょう。

    department.phpを修正しましょう 次のスニペットに示すようなスクリプト。

    <?php
    require_once "script/pdocrud.php";
    
    $pdocrud = new PDOCrud();
    $pdocrud->setSettings("inlineEditbtn", true);
    echo $pdocrud->dbTable("department")->render();

    ご覧のとおり、inlineEditbtnを有効にしました 設定すると、インライン編集機能がすぐに利用できます!

    これは、レコードをその場で編集できる非常に便利な機能です。

    フィルター

    お気づきかもしれませんが、部門リストページには、レコードをフィルタリングするためのフリーテキスト検索がすでに用意されています。ただし、検索機能を向上させるために、独自のカスタムフィルターを追加することもできます。それがまさにフィルターです オプションを使用すると、カスタムフィルターを作成できます!

    employee.phpを使用します この機能は、デモのユースケースとして最適です。従業員リストページには、各従業員レコードの部門名が表示されているので、部門名でレコードをフィルタリングできる部門フィルターを作成しましょう。

    先に進み、 employee.phpを修正します 次のスニペットに示すように。

    <?php
    require_once "script/pdocrud.php";
    
    $pdocrud = new PDOCrud();
    
    $data =  $pdocrud->getPDOModelObj()->select("department");
    $options = array();
    foreach($data as $record) {
        $options[$record['id']] = $record['department_name'];
    }
    $pdocrud->fieldTypes("dept_id", "select");//change state to select dropdown
    $pdocrud->fieldDataBinding("dept_id", $options, "", "","array");//add data using array in select dropdown
    
    $pdocrud->crudTableCol(array("first_name","last_name", "department_name", "email","phone"));
    $pdocrud->joinTable("department", "employee.dept_id = department.id", "INNER JOIN");
    $pdocrud->addFilter("department_filter", "Department", "dept_id", "dropdown");
    $pdocrud->setFilterSource("department_filter", $options, "", "", "array");
    echo $pdocrud->dbTable("employee")->render();

    addFilterを呼び出して、2行追加しました。 およびsetFilterSource 、これにより、従業員リストは次のようになります。

    かっこいいじゃないですか?たった2行のコードで、カスタムフィルターを追加しました!

    画像のアップロード

    これは、フォームにファイルのアップロードを設定する場合に必須の機能です。次のスニペットに示すように、1行のコードで、通常のフィールドをファイルアップロードフィールドに変換できます。

    profile_imageがあると仮定します 従業員テーブルのフィールドであり、ファイルアップロードフィールドに変換する準備ができていることを確認してください。

    <?php
    require_once "script/pdocrud.php";
    
    $pdocrud = new PDOCrud();
    $pdocrud->fieldTypes("profile_image", "image");
    echo $pdocrud->dbTable("employee")->render();

    それでおしまい!これで、ユーザーは画像をprofile_imageにアップロードできるようになります。 フィールド。

    CAPTCHA

    現在、スパムからサイトを保護したい場合、CAPTCHA検証は不可欠な機能です。 PDO CRUDツールには、すでにいくつかのオプションが用意されています。

    CAPTCHAとreCAPTCHAの2つのオプションがあります。 CAPTCHAオプションを選択すると、ユーザーが解くための数学パズルが表示されます。一方、reCAPTCHAオプションを選択すると、有名な私はロボットではありませんが表示されます。 パズル!

    簡単なCAPTCHAパズルを追加する場合は、CRUDをレンダリングする前に次の行を追加する必要があります。

    $pdocrud->formAddCaptcha("captcha");

    一方、reCAPTCHAを使用する場合は、次のスニペットを使用して同じことを実現できます。

    $pdocrud->recaptcha("your-site-key","site-secret");

    your-site-keyを置き換えるだけです およびsite-secret Googleからの有効なクレデンシャルを持つ引数。

    これまで、アプリケーションの機能を強化するオプションについて説明してきました。次に、スキンを変更して、アプリケーションのルックアンドフィールを変更する方法を説明します。

    スキン

    デフォルトのスキンが気に入らない場合は、いくつかのオプションから選択できます。 PDO CRUDツールは、他のオプションとして、ダーク、フェア、グリーン、およびアドバンストスキンを提供します。

    たとえば、次のリストは緑のテーマに基づいています。

    見た目はいいですね。

    純粋なブートストラップ

    デフォルトのスキンはすでにレスポンシブレイアウトをサポートしていますが、PDOCRUDツールはブートストラップライブラリの統合もサポートしています!

    Bootstrapライブラリを使用してレイアウトを構築する場合は、次のスニペットを使用する必要があります。

    <?php
    require_once "script/pdocrud.php";
    
    $pdocrud = new PDOCrud(false, "pure", "pure");
    echo $pdocrud->dbTable("department")->render();

    そして、これがどのように見えるかです:

    CodeCanyonの4つの既成のPHPCRUDインターフェース

    CodeCanyonには、十分にレビューされた、簡単なCRUDPHPインターフェースが多数あります。サイト上のすべてのPHPCRUDビルダーを閲覧したくない場合は、次の5つのオプションを確認してください。

    1。 PHPCRUDジェネレーター

    20を超えるブートストラップテーマと優れた高度な機能を備えたこの既成のインターフェイスは、見栄えがよく、パフォーマンスも優れています。それはあなたのデータの分析を実行する素晴らしい仕事をします。 PHP CRUD Generatorには、理想的な管理パネルを作成するためのツールも付属しています。

    2。 Laravel多目的アプリケーション

    すべてのベルとホイッスルを備えたHTML5CRUDアプリケーションが必要ですか?それならLaravelはあなたにとって良い選択です。この簡単なPHPCRUDアプリケーションには、次のような機能が満載です。

    • フロントエンドとバックエンドのテンプレート
    • ユーザーやグループに大量のメールを送信
    • パスワードを忘れた機能
    • ブロックされ許可されたIPアドレス

    3。 AdminLite-PHP管理パネルとユーザー管理

    次のプロジェクトがCodeIgniterで作成されている場合は、AdminLiteが必要になります。このHTML5CRUDアプリケーションは、すぐに使用できるモジュールを使用してWeb開発を常に把握するのに役立ちます。 Admin Liteには、管理者ダッシュボードとユーザーダッシュボードが付属しており、複数の言語をサポートしています。既存のパネルをこのパネルに変換して、中断したところから再開できます。

    4。 Cicool-ページ、フォーム、REST API、CRUDジェネレーター

    このリストをCicoolで締めくくります。これは、多くの機能を備えた簡単なCRUDPHPジェネレーターです。このWordPressCRUDPHPビルダーは、ページ、フォーム、RESTAPIの作成にも使用できます。 Cicoolを使用すると、すぐに使用できるコンポーネントと入力を使用して、必要なものを作成できます。絶え間ない更新のおかげで、Cicoolが引き続きサポートされていることがわかります。

    EnvatoTuts+でコードの世界についてもっと知る

    コーディングが深いトピックであることは間違いありません。学ぶことはたくさんあり、迷子になりがちです。いくつかのガイダンスで非常に役立つコーディングスキルを習得したい場合は、EnvatoTuts+をチェックしてください。私たちのコードチュートリアル、ガイド、およびコースは、学習中に必要な指示を提供します。以下でそれらのいくつかをチェックすることができます:

    • 無料 PHPPHP FundamentalsJeremy McPeak
    • PHPPHP整数、浮動小数点数、および数値文字列Monty Shokeen
    • PHP PHPでファイルをアップロードする方法(例を含む)Sajal Soni
    • WordPressWordPressSajalSoniでブラウザキャッシュを使用する方法

    そして、あなたが私たちのYouTubeチャンネルに向かうことを確認してください!エキスパートインストラクターが教えるビデオチュートリアルとコースが満載です。

    Web開発者になる方法
    1. バイナリデータをディスクに保存するスクリプト

    2. 時系列データベースのスケーリング-TimescaleDBを単純にスケーリングする方法

    3. Accessで合計行を作成する方法

    4. 遅いクエリでPostgreSQLのパフォーマンスの問題を特定する方法