Скачать исходники (gengine.rar)
Давайте всё же определимся, что такое движок? Движком или CMS (Content Management System) мы будем называть систему, которая позволяет формировать сайт динамически посредством базы данных и своеобразной панели управления. Другими словами движок состоит из несколько модулей (гостевая книга, голосование, статистика, поиск, админка и т.п.) с помощью которых формируется и наполняется контентом сайт.
Что наш движок будет уметь?
1)Регистрация пользователей
2)Рассылка почты зарегистрированным пользователям
3)Добавление, редактирование, удаление новостей и статей
* Система шаблонов
Движок не будет движком, если ему не от куда извлекать данные и выводить их пользователю. Поэтому нам нужна база данных. Использовать мы будем MySQL, значит открываем mysql.exe с правами root , заходим в какую-нить базу и создаём таблицы:
/*Таблица g_users будет содержать в себе номер, логин, пароль и уровень доступа пользователей.*/ CREATE TABLE g_users(id INT AUTO_INCREMENT NOT NULL, level BOOL DEFAULT null, user CHAR(30) NOT NULL, password CHAR(32) NOT NULL, email CHAR(60) NOT NULL, PRIMARY KEY(id)) Type=MyISAM; /*Таблица g_news будет содержать номер, текст и дату создания новости.*/ CREATE TABLE g_news(id INT AUTO_INCREMENT NOT NULL, text TEXT, date CHAR(10), PRIMARY KEY(id)) Type=MyISAM; /*Таблица g_articles будет содержать в себе всё тоже что и g_news, но ко всему мы добавим ещё и номер пользователя.*/ CREATE TABLE g_articles(id INT AUTO_INCREMENT NOT NULL, uid INT, name CHAR(30), text TEXT, date CHAR(10), PRIMARY KEY(id)) Type=MyISAM;
Так, таблицы создали, далее копируем себе в htdocs исходники движка, который я написал для тебя. Файл engine.php это сердце движка, поэтому открываем и пытаемся понять что к чему. Всё что ты там видишь - это классы. Да, да, да! Ты сейчас будешь изучать объектно-ориентированное программирование на примерах. Конечно, если ты уже знаешь что такое ООП, то тебе не составит труда прочесть исходники.
Немного теории. Каждый класс представляет из себя набор функций (методов) и переменных. Класс имеет свой конструктор (функция, которая выполняется при создании объекта). Конструктор именуется также как и сам класс. Причём тут тогда объекты? А объекты это копии классов, отличаются они тем, что над ними и происходят все действия.
Переходим к примерам. У нас есть класс mysql. Давай теперь создадим объект:
$mysql = new mysql();
Разберём все по кусочкам.
$mysql - переменная (объект), в которую записывается копия класса.
new - оператор, с помощью которого объект размещается в памяти.
mysql() - сам, класс который вызывает конструктор mysql()
Обрати внимание на класс mysql. Конструктор имеет вид mysql($h = MYSQL_HOST,$l = MYSQL_USER,$p = MYSQL_PASS,$db = MYSQL_DB)
Если мы не указываем при создании объекта параметры $h,$l,$p,$db то они берут значения из соответствующих им констант. То есть мы могли создать объект другим способом $mysql = new mysql("localhost","root","","db"); или же $mysql = new mysql("localhost","root",""); Параметры которые были опущены автоматически получают своё значение.
Объект у нас есть, но этого мало. Давай теперь попробуем выполнить какой-нить из его методов:
$mysql->query("CREATE TABLE test(id INT, text TEXT)");
Метод query($sql) выполняет SQL запрос на базу данных, которую мы указали при создании объекта $mysql. Запрос "CREATE TABLE test(id INT, text TEXT)" создал в базе данных MYSQL_DB таблицу test с колонками id и text. Можешь это проверить в самом MySQL. Выполни SHOW TABLES FROM название_базы; и ты увидишь, что эта
таблица действительно создалась. Думаю, ничего сложного в этом ты не нашел. Поэкспериментируй над методами и объектами.
В следующей части мы будем делать систему шаблонов, с помощью которой и доделаем наш движок.
© Guru 04.05.2006

Это все понятно пока не начнешь писать..А вот как один раз в начале обращения к сайту соединится с базой а потом разрывать только когда уходишь с сайта? Спасибо.Если можно то на почту repus-alex@yandex.ru