Двигателят на сайта със собствените си ръце

Последният път, когато видях как "база данни" на организацията, без самата действителната база данни. Днес ние ще продължим създаване на "не-mysql'nogo" saytovogo двигател беседа на директории, файлове и include'ah. Ще има и малко теория и практика на правилната работа на двигателя.

Основните принципи на организацията

Не е трудно да се отгатне, че организацията блок на двигателя зависи от много фактори, които варират във всеки пример сайт. Това проспективно информация структура и функции на хостинг, който се поставя на място (наличие-otstutstvie такива средства, като PHP, SSI, наличието на който и да е база данни, и така нататък. П.), и в по-малка степен в развитието на устройството на бъдещата двигателя е необходимо се вземат под внимание на дизайна на сайта, което означава, че структурата на самите страници.

По този начин, думата "отделяне" означава вече на минимално отстояние от страниците на сайта в два файла - един модел дизайн (който може да бъде обща за повече от една страница) и файл с оглед на самото съдържание, а именно информация.

В допълнение към тези два файла които трябва още една, за да бъдат включени във всички динамични страници (което означава, страници, които съдържат PHP-код). В този файл ще запазим всички общи характеристики на двигателя (в действителност, те могат да се нарича "ядро") и да определи някои полезни глобални константи.

Така че, обратно на действителната организация на нашата система. Основният принцип на която ще се използва в нашия пример - това е раздела на едно ниво. Но не се притеснявайте - това е само за да се опрости примерите. Ако това ви се струва твърде ограничаващ честен - просто трябва да чакам за следващия брой, в който търсим заобиколни.

Така че, ние имаме директории, всеки от които е раздел на сайта (разбира се, с изключение на услугата директория, като например "образи").

Така че, с имената на файловете подредени. Но какво ще се постави в тези файлове? Тук в момента е това, което ние всъщност отидете в основната част на днешния разговор.

В началото на файла, за да въведете код трябва да се даде възможност на ядрото на двигателя. Такава обработка на PHP език изглежда по следния начин:

Този файл съдържа самите четене-O функциите, описани в предишната статия. По този начин, те вече стават на разположение за употреба.

В един и същи файл трябва да описва някои по-полезни функции. Например, функцията на пряко получаване на всеки файл в низ (може би полезно):

функция getinclude ($ път)
върнете str_replace ( "п", "", (спуквам (файл ($ път), "")));
>

Друга функция, може да бъде полезна за организиране на една проста система за новини. Но, въпреки лекотата на изпълнението, тя разполага с достатъчно удобни функции, като например отнемане на всяко място да блокирате страници с обявения размер на последните новини и възможността за организиране на архив на новините.

Същността на работата й е сведена до followingManufacture. Налице е текстов файл с новини, разделени с нов ред (Накратко, всяка новина - нов ред). Всеки ред се разделя на символа за канал ( «|») в две полета: дата и в действителност, самата новина.

Opredilit функция новини система в нашата vklyuchamom файл ( "ядро"), ние сме в състояние да на всяка страница, за да получите точното количество за последните новини. Първият параметър премина част от пътя, което показва, поставянето на новини файла. Брой новини изход, както може би се досещате, е даден втори, допълнителен параметър.

Тук е моят изпълнение на редакционните функции:

функционални getnews ($ път = "". $ Lim = 3)
$ Новини = файл ($ път "news.txt".);
$ Резултат = "";

за ($ аз = 0; $ аз <$lim && $i $ Newslist = loadtemplate ( "шаблони / _news.tpl");

$ Newslist = eregi_replace ( "¤date¤".
strtok ($ новини [$ аз], "|"), $ newslist);
$ Newslist = eregi_replace ( "¤text¤".
strtok ( "|"), $ newslist);

$ Резултат = $ резултат. $ Newslist;
>

върне $ резултат;
>
// край на getnews ();


Е, за днес засега всичко. За да се продължи.