![画像](https://habrastorage.org/getpro/habr/post_images/998/451/a79/998451a79a24d116161892a7daf10b53.png)
また、ハブにはパフォーマンスリンクに関する記事があります。
簡単なログインフォームの開発。
OpenServerがあります:
![画像](https://habrastorage.org/getpro/habr/post_images/610/96b/dd5/61096bdd5a68617edcd077ce48f2cac4.jpg)
この構成では:
![画像](https://habrastorage.org/getpro/habr/post_images/098/433/6ba/0984336baa749a446a95f6b930ceb98b.jpg)
また、オフサイトのDooPHPで 、フレームワークファイルへのリンクが機能していませんでした。Googleの助けを借りて、バージョン1.5が見つかりました 。
続行:
サイトのルートディレクトリ(C:\ web \ OpenServer \ domains \ doophpにあります)で、「app」フォルダー内のアーカイブからすべてのコンテンツを解凍します。「dooframework」フォルダーもそこにあります。 次の構造があります。
![画像](https://habrastorage.org/getpro/habr/post_images/00f/c60/e3d/00fc60e3d3a3ed9377ee7378cd2e612e.png)
何が何であるかをより詳細に理解しています。
「Dooframework」-フレームワーク自体のすべてのファイル。
「グローバル」は、サイトファイル(css、js、img、swf)のリポジトリです。
「保護」-アプリケーションのPHPファイル(ファイル構成、コントローラー、モデル、ディスプレイ、アドオンモジュール)。
「ツール」-追加。 ユーティリティとツール。
アプリケーションを構成します。
設定ファイルを編集します(C:\ web \ OpenServer \ domains \ doophp \ protected \ config \ common.conf.php)
フレームワークとアプリケーションのファイルを含むフォルダーへのパスを設定します。
$config['SITE_PATH'] = '/'; $config['BASE_PATH'] = '/dooframework/';
$config['SITE_PATH'] = '/';
フルパスを指定し、文字「/」で終了する必要があります(C:\\ web \ .... /)。
また、表示するエラーとタイムゾーンを構成することもできます。
error_reporting(E_ALL | E_STRICT); date_default_timezone_set('Asia/Kuala_Lumpur');
Webブラウザーにアクセスし、アドレスにアクセスして、以下を確認します。
![画像](https://habrastorage.org/getpro/habr/post_images/451/877/676/4518776760f7014b0606ca8d1f7a15fa.png)
フレームワークのウェルカムページ。
データベースのセットアップ:
フィールドを持つテーブル(ユーザー)を作成します。
id
ユーザー名
パスワード
お名前
CREATE TABLE `test`.`User` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `username` VARCHAR( 20 ) NOT NULL , `password` CHAR( 32 ) NOT NULL , `name` VARCHAR( 40 ) NOT NULL );
ここで、データベースをフレームワークに接続する必要があります。ファイルCで実行します。\ web \ OpenServer \ domains \ doophp \ protected \ config \ db.conf.php
行のコメントを解除して構成します。
$dbconfig['dev'] = array('localhost', 'database', 'root', '1234', 'mysql', true);
また、このためのルーティングを設定する必要があります。ルート.htaccessとファイルのコメントを外します
C:\ web \ OpenServer \ domains \ doophp \ protected \ config \ routes.conf.php
追加:
$route['*']['/login'] = array('LoginController', 'index');
コントローラー:
フォルダC:\ web \ OpenServer \ domains \ doophp \ protected \ controllerに新しいファイルLoginController.phpを作成します
書き込みます:
<?php class LoginController extends DooController {// LoginController DooController protected $data = array(); /* This function is called by DooPHP before we run an action */ public function beforeRun($resouce, $action) { // Get the sites base url ie http://localhost/ (includes the / at the end) $this->data['app_url'] = Doo::conf()->APP_URL; } public function index() { $this->data['pagetitle'] = 'login'; $this->view()->render('login',$this->data);// } } ?>
ディスプレイ:
C:\ web \ OpenServer \ domains \ doophp \ protected \ viewフォルダーで、内容を含むlogin.htmlファイルを作成します。
<html> <head> <title>To Doo List Manager :: {{pagetitle}}</title> </head> <body> <h1>To Doo List Manager :: {{pagetitle}}</h1> <p>Please Login</p> <form method="post"> <label for="txt_username">Username</label> <input type="text" name="txt_username" /><br /> <label for="txt_password">Password</label> <input type="password" name="txt_password" /><br /> <p class="error">Error: {{errorMsg}}</p> <input type="submit" value="Login" /> </form> </body> </html>
PSレンダリング時に、このようなファイルがviewcフォルダーに見つからなかったというエラーがポップアップ表示されますが、私はそれがキャッシュであると理解していますが、login.phpファイルの代わりに、login.phpフォルダーがファイルと同じフォルダーに作成されたのは、 5.3。*であり、ドキュメント5.1。で必要です。 空のlogin.phpファイルを作成しましたが、エラーはなくなりました。
モデル
フォルダーC:\ web \ OpenServer \ domains \ doophp \ protected \ modelにファイルを作成して入力します
Doo::loadCore('db/DooModel'); class User extends DooModel { public $id; public $username; public $password; public $name; public $_table = 'user'; public $_primarykey = 'id'; public $_fields = array('id', 'username', 'password', 'name'); public function get_user(){ if(!$this->username or !$this->password){ return array('errorMsg'=>"At least one field was empty"); }else{ $a=Doo::db()->find( $this, array('limit'=>1)); if($a){ return true; }else return array('errorMsg'=>"no user or wrong pass"); } } function __construct(){ parent::$className = __CLASS__; } }
その後、ルーティングにエントリを追加して、routes.conf.phpファイルのPOSTリクエストが必要なメソッドに送られるようにします
行を追加する
$route['post']['/login'] = array('LoginController', 'login');
画面に、ログインしたユーザーのウェルカムファイルを追加します。
「view」パッケージで、success.htmlファイルを作成して書き込みます
<html> <body> <h1>Success!</h1> </body> </html>
コントローラーにチェック機能を追加します。
public function login() { $this->data['pagetitle'] = 'login'; Doo::loadModel('User'); $u = new User; $u->username=$_POST['txt_username']; $u->password=md5($_POST['txt_password']); $ab=$u->get_user(); if(isset($ab['errorMsg'])){ $this->data['errorMsg']=$ab['errorMsg']; $this->view()->render('login',$this->data); }else{ $this->view()->render('success'); } }
パフォーマンスを確認します。
エラーが表示される空のフィールドを入力します。
![画像](https://habrastorage.org/getpro/habr/post_images/f68/987/277/f68987277bc5243df502dfbb27462a45.png)
意図的に間違ったパスワードを入力すると、エラーが表示されます。
![画像](https://habrastorage.org/getpro/habr/post_images/664/d00/c40/664d00c4003e4bc37cb21587cc77134b.jpg)
正しいユーザー名とパスワードを入力してください。ウェルカムフォームをご覧ください。
![画像](https://habrastorage.org/getpro/habr/post_images/c71/1df/b6a/c711dfb6a0dd3f1e841184966ac0af78.jpg)
結論
このミニタスクを開発する際、ドキュメントやサンプルを見つけることは難しくありませんでしたが、より難しいタスクの場合、コミュニティは大いに見逃されるでしょう。 また、より一般的なフレームワークの多くのものが自動的に実装されます。 この製品で何かを開発するか、より完全なドキュメントとコミュニティを持つより人気のあるフレームワークを選択するのはあなた次第です。
Githubプロジェクト: https : //github.com/izac1/DoophpSimpleApp.git