Так вышло что я некогда не пользуюсь чужими движками и плагинами, может это и плохо да и скорее всего плохо, но нечего с собой поделать не могу. При написании одного из проектов решил использовать mvc(model, view, controller), не буду рассказывать о том что это и зачем это применять, google в помощь. Так вот решил сам все писать, и после не мало проведенного времени в гугле и прочтением всякой нужной и не нужной информации о mvc, приступил к написанию движка. Теперь хочу с вами поделиться дабы некто из таких как я не наступал на те же грабли.
И так, перед написанием надо понять какие базовые классы надо использовать помимо model, view, contoller, для этого надо подумать будет ли использоваться База Данных? в нашем проекте конечно будет, значит напишем класс appBase для работы с базой данных, идем дальше так как мы продаем книги то напишем класс book, для маршрутизации url напишем класс router.
И того, для работы движка потребуются следующие классы:
Так же, нужно определить файловую структуру нашего приложения, я использую такую:
root — корневой каталог
app — каталог с файлами приложения
classes — каталог с базовыми классами
models — каталог с файлами моделей
controllers — каталог с файлами контроллеров
views — каталог с файлами представление(можно сказать с дизайном приложения)
comp — каталог с файлами представления для компьютеров
mobile — каталог с файлами представления для телефонов (если нужно)
Остальные три папки нет смысла описывать. В папке app будут присутствовать 2 файла (bootstrap.php, config.php). И так дорогие программеры, готово…
Теперь можно приступать к нашему любимому написанию, знаете, я всегда считал что написанное приложение отзеркаливает душу программиста, по написанному приложению можно многое сказать о программисте как о человеке. Но что то меня понесло не туда. В этом уроке мы напишем файлы index.php , htaccess, botstrap.php.
И так что mvc работало как надо, надо перенаправлять запросы к серверу на файл index.php, для этого в корневой папке создаем файл htaccess а в нем прописываем, ну или копируем и вставляем следующее:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
Хорошо, теперь можно работать дальше.
Создаем в корневом каталоге файл index.php и в нем пишем следующее:
Не буду объяснять что выполняют эти команды так как все прокомментировано, идем дальше в папке app создаем файл bootstrap.php в нем прописываем следующее:
Далее в папке app создаем файл config.php, в нем прописываем следующий код:
И так после обращения к сайту, у меня это habraLesson.ru, можно увидеть следующее:
Это говорит о том что все хорошо и файлы подключились, даже если обратиться так habralesson.ru/dsfsdfsdfsdfsdf, мы увидим тоже самое, но при обращении вот так habralesson.ru/app, мы увидим следующее:
Чтобы скрыть файлы и папки в фале htaccess добавим следующее:
<Files .htaccess>
order allow,deny
deny from all
Теперь можно удалить строки из файла config.php:
B строки из файла bootstrap.php:
На этом первый урок закончен, скоро будет второй. Спасибо, если кто сумел дочитать мой скучный первый пост.
И так, перед написанием надо понять какие базовые классы надо использовать помимо model, view, contoller, для этого надо подумать будет ли использоваться База Данных? в нашем проекте конечно будет, значит напишем класс appBase для работы с базой данных, идем дальше так как мы продаем книги то напишем класс book, для маршрутизации url напишем класс router.
И того, для работы движка потребуются следующие классы:
- model
- view
- controller
- appBase
- book
- router
Так же, нужно определить файловую структуру нашего приложения, я использую такую:
root — корневой каталог
app — каталог с файлами приложения
classes — каталог с базовыми классами
models — каталог с файлами моделей
controllers — каталог с файлами контроллеров
views — каталог с файлами представление(можно сказать с дизайном приложения)
comp — каталог с файлами представления для компьютеров
mobile — каталог с файлами представления для телефонов (если нужно)
Остальные три папки нет смысла описывать. В папке app будут присутствовать 2 файла (bootstrap.php, config.php). И так дорогие программеры, готово…
Теперь можно приступать к нашему любимому написанию, знаете, я всегда считал что написанное приложение отзеркаливает душу программиста, по написанному приложению можно многое сказать о программисте как о человеке. Но что то меня понесло не туда. В этом уроке мы напишем файлы index.php , htaccess, botstrap.php.
И так что mvc работало как надо, надо перенаправлять запросы к серверу на файл index.php, для этого в корневой папке создаем файл htaccess а в нем прописываем, ну или копируем и вставляем следующее:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
Хорошо, теперь можно работать дальше.
Создаем в корневом каталоге файл index.php и в нем пишем следующее:
<?php
//Включаем отображение ошибок
ini_set('display_errors', 1);
//Подключаем файл инициализации
require_once 'app/Bootstrap.php';
?>
Не буду объяснять что выполняют эти команды так как все прокомментировано, идем дальше в папке app создаем файл bootstrap.php в нем прописываем следующее:
<?php
//Начинаем сессию
session_start();
//Подключаем настройки
require_once 'config.php';
//Выводим сообщение что файл bootstrap.php подключен для проверки
echo "Файл bootstrap.php подключен<br>";
?>
Далее в папке app создаем файл config.php, в нем прописываем следующий код:
<?php
/**
* Настройки скриптов
*/
//Начало переменных замены
define('KEY_START', '{');
//Конец переменных замены
define('KEY_END', '}');
//fele exits design
define('FILEEXT', '.html');
//Папка с компьютерной версией
define('PAGEDIRCOMPUTER', 'comp/');
//Папка с мобильной версией
define('PAGEDIRMOBILE', 'mobile/');
//Папка с файлами отображения
define('PAGEDIRCOMP', 'app/views/'.PAGEDIRCOMPUTER);
//Доменное имя приложения
define('DOMAINSERVER', 'http://' . $_SERVER['HTTP_HOST']);
//Папка с моделями
define("PATCHMODEL", 'app/models/');
//Папка с контроллерами
define("PATCCONTROLLERS", 'app/controllers/');
//Папка с файлами javascript
define('JSFOLDER', DOMAINSERVER.'/app/views/comp/js/');
//Папка с файлами css
define('CSSFOLDER', DOMAINSERVER.'/app/views/comp/css/');
//папка с файлами images
define('IMGFOLDER', DOMAINSERVER.'/app/views/comp/images/');
/**
* Настройки базы данных
*/
//Хост базы данных
define('DBHOST', 'localhost');
//Логин базы данных
define('DBLOGIN', 'root');
//Пароль базы данных
define('DBPASSWORD', '');
//Название базы данных
define('DBNAME', 'book_magazin');
/**
* Настройки роутера
*/
//Контроллер по умолчанию
define("CONTROLLERDEFAULT", 'Main');
//Действие по умолчанию
define("ACTIONDEFAULT", 'Index');
//Выводим сообщение что файл config.php подключен
echo "Файл config.php подключен<br>";
?>
И так после обращения к сайту, у меня это habraLesson.ru, можно увидеть следующее:
Это говорит о том что все хорошо и файлы подключились, даже если обратиться так habralesson.ru/dsfsdfsdfsdfsdf, мы увидим тоже самое, но при обращении вот так habralesson.ru/app, мы увидим следующее:
Чтобы скрыть файлы и папки в фале htaccess добавим следующее:
<Files .htaccess>
order allow,deny
deny from all
Теперь можно удалить строки из файла config.php:
//Выводим сообщение что файл config.php подключен
echo "Файл config.php подключен<br>";
B строки из файла bootstrap.php:
//Выводим сообщение что файл bootstrap.php подключен для проверки
echo "Файл bootstrap.php подключен<br>";
На этом первый урок закончен, скоро будет второй. Спасибо, если кто сумел дочитать мой скучный первый пост.