Я был очень огорчён что не нашёл на хабре подобной теоретической статьи. И так имеется DooPHP версии 1.5 которая была выпущена 6 октября 2013 года. На официальном сайте переведены такие графики производительности

Также на хабре имеется статья по поводу производительности ссылка.
Разработка простой формы логинизации под катом.
Итак, имеем OpenServer:

С такой конфигурацией:

Также на офф сайте DooPHP ссылки на файлы фреймворка были не рабочими, с помощью гугла я нашёл версию 1.5 тут.
В корневую директорию сайта (у меня это C:\web\OpenServer\domains\doophp) распаковываем всё содержимое из архива в папке «app», также туда же папку «dooframework». Имеем следующую структуру:

Разбираемся по подробнее что к чему:
«dooframework» — все файлы самого фреймворка.
«global» — хранилище файлов сайта (css,js,img,swf).
«protected» — php файлы вашего приложения (файлы конфигурация, контролер, модель, отображения, доп. модули).
«tools» — доп. утилиты и инструменты.
Настраиваем наше приложение:
Редактируем файл настроек (C:\web\OpenServer\domains\doophp\protected\config\common.conf.php)
задаём пути к папке с файлами фреймворка и нашего приложения:
в
также можем настроить какие ошибки выводить и временную зону:
Переходи в наш веб-браузер заходим по нашему адресу и видим:

Страницу приветствия фреймворка.
Создадим таблицу (User) c полями:
id
username
password
name
Теперь нам нужно подключить БД к фреймворку, делаем это в файле C:\web\OpenServer\domains\doophp\protected\config\db.conf.php
раскомментируем и настраиваем строчку:
так же нужно наст��оить роутинг для этого в корне раскомментируем .htaccess и в файл
C:\web\OpenServer\domains\doophp\protected\config\routes.conf.php
Добавим:
В папке C:\web\OpenServer\domains\doophp\protected\controller создаём новый файл LoginController.php
В нём пишим:
В папке C:\web\OpenServer\domains\doophp\protected\view создаём файл login.html с содержимым:
P.S. при рендере у меня выскочила ошибка мол такой файл не найден в папке viewc, я так понимаю это кэш, но вместо файла login.php в этой самое папке место фала создалась папка login.php я думаю это либо из версии PHP так как у меня она 5.3.*, а требуется по документации 5.1.*. Я создал пустой файл login.php ошибка пропала.
В папке C:\web\OpenServer\domains\doophp\protected\model создаём файл и заполняем его
После этого в роутинг добавляем запись чтобы POST запрос уходил в нужный нам метод, в файле routes.conf.php
добавим строку
В отображения добавим файл приветствия для пользователя который прошёл логинизацию
в паке «view» создадим файл success.html запишем в него
В контроллер добавим функцию проверки:
Вводим пустые поля видим ошибку.

Вводим заведомо не правильны пароль видим ошибку.

Вводим правильны логин и пароль видим форму приветствия.

При разработке этого мини задания не трудны было найти документацию и примеры, но при более трудных задачах комьюнити очень будет не хватать. Также многие вещи в более популярных фреймворках реализованы автоматически. Разрабатывать что либо на данном продукте или выбрать более популярные фреймворки с более полной документацией и комьюнити решать вам.
Проект на Github: https://github.com/izac1/DoophpSimpleApp.git

Также на хабре имеется статья по поводу производительности ссылка.
Разработка простой формы логинизации под катом.
Итак, имеем OpenServer:

С такой конфигурацией:

Также на офф сайте DooPHP ссылки на файлы фреймворка были не рабочими, с помощью гугла я нашёл версию 1.5 тут.
Приступим:
В корневую директорию сайта (у меня это C:\web\OpenServer\domains\doophp) распаковываем всё содержимое из архива в папке «app», также туда же папку «dooframework». Имеем следующую структуру:

Разбираемся по подробнее что к чему:
«dooframework» — все файлы самого фреймворка.
«global» — хранилище файлов сайта (css,js,img,swf).
«protected» — php файлы вашего приложения (файлы конфигурация, контролер, модель, отображения, доп. модули).
«tools» — доп. утилиты и инструменты.
Настраиваем наше приложение:
Редактируем файл настроек (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');
Переходи в наш веб-браузер заходим по нашему адресу и видим:

Страницу приветствия фреймворка.
Настройка Базы Данных:
Создадим таблицу (User) c полями:
id
username
password
name
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 i.e. 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>
P.S. при рендере у меня выскочила ошибка мол такой файл не найден в папке viewc, я так понимаю это кэш, но вместо файла login.php в этой самое папке место фала создалась папка login.php я думаю это либо из версии 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__; } }
После этого в роутинг добавляем запись чтобы POST запрос уходил в нужный нам метод, в файле routes.conf.php
добавим строку
$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'); } }
Проверяем работоспособность:
Вводим пустые поля видим ошибку.

Вводим заведомо не правильны пароль видим ошибку.

Вводим правильны логин и пароль видим форму приветствия.

Выводы
При разработке этого мини задания не трудны было найти документацию и примеры, но при более трудных задачах комьюнити очень будет не хватать. Также многие вещи в более популярных фреймворках реализованы автоматически. Разрабатывать что либо на данном продукте или выбрать более популярные фреймворки с более полной документацией и комьюнити решать вам.
Проект на Github: https://github.com/izac1/DoophpSimpleApp.git
