Контакты

Для связи с нами можно использовать:
irc://irc.chatnet.ru:#gfs
icq://546460
email://cobalt[@]gfs-team.ru

Все материалы предоставлены только с ознакомительной целью
ГлавнаяСтатьиКодингПишем движок на PHP. Часть I
© Guru 04.05.2006

Скачать исходники (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

e-Commerce Partners Network
Луганск написал:

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

fraIzer написал:

хмм шизлонг полный...

fraIzer написал:

хмм шизлонг полный...

nikalas9 написал:

а мне понравилось

Ник:

Текст:
P Br B I Qute



Код: обновить
Последние комментарии
28.07.2017 12:06:17 DavidThymn написал:
VasTutNet точка ru удалим негативные отзывы о Вас,разместим положительные,Спецалист...
Сайт снова работает!
28.07.2017 12:06:16 DavidThymn написал:
VasTutNet точка ru удалим негативные отзывы о Вас,разместим положительные,Спецалист...
Новая статья
26.07.2017 15:18:53 Flossiefal написал:
Принципиально новое обновление "XRumer 16.0 + XEvil": решение бесплатно и быстро...
Релиз
Реклама

Тут должна была быть ваша реклама, но мы потеряли глиняную табличку с ее текстом. SapeId: 665044

Rambler's Top100