2 és fél éves bejegyzésmentes időszak után egy hosszabb lélegzetvételű cikksorozatba kezdenék, ezzel pótolva az elmúlt időszakot (és talán beindítva az oldalt). A sorozat első tagjaként felvázolnám, hogy nagyjából mi is lenne a célom ezzel a cikksorozattal, valamint szót ejtek a CMS fejlesztésének legelső lépéseiről (aki nem tudná, hogy egy CMS mire való, annak javaslom a Wikipedia ide vonatkozó szócikkét).
Mint minden nagyobb lélegzetvételű rendszer, program készítése előtt, egy CMS készítésekor is szükség van specifikációra. A specifikáció fejlesztési modelltől függően kezdetben lehet bővebb, vagy szűkebb szavú. Én nem vagyok híve a "sokat tervezek, majd egyben lekódolok mindent" elvnek, így a CMS tervezésekor a specifikáció csak egy képlékeny vázlat, ami a fejlesztés során többször változik. Ennek megfelelően a cikksorozat egy folyamatosan bővülő CMS fejlesztését mutatja be a kezdeti lépésektől a "kulcsra kész" állapotig, beleértve a programozást, tervezést, design megvalósítást.
Mivel hosszútávon a célom egy komplex, jól bővíthető, konfigurálható és nem utolsó sorban jól skálázható WCMS készítése, így kezdeti specifikációnak indítsunk az alábbiakkal:
Mint látható, maga a specifikáció elég tömör, viszont ennyi bőven elég egy XP típusú programozáshoz. Mivel a kezdeti feltételek megvannak, így kezdődhet a specifikáció alapján a tervezés.
A kezdeti tervek a megvalósításra hasonlóan egyszerűek, mint a specifikáció:
A fejlesztéshez létrehozzuk a tervezés során meghatározott könyvtárstruktúrát az index.php, maintenance.html, .DEBUG, .MAINTENANCE fájlokkal együtt az alábbiak szerint:
/ │ ├─themes │ ├─uploads │ ├─logs │ ├─js │ ├─functions │ │ │ ├─admin │ │ │ ├─ajax │ │ │ ├─database │ │ │ ├─request │ │ │ └─security │ ├─checksums │ ├─configs │ ├─.DEBUG │ ├─.MAINTENANCE │ ├─maintenance.html │ └─index.php
A .DEBUG, illetve .MAINTENANCE fájlok egyszerű szöveges fájlok, tartalmuk nincs, ennek következtében mindegy hogy milyen karakterkódolásúak, mivel csak a létezőségüket fogjuk vizsgálni.
A maintenance.html tartalma jelenleg az alábbi egyszerű html kód lesz utf-8-as kódolásban, BOM nélkül:
html5<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<p>Site is under maintenance...</p>
</body>
</html>
A későbbiekben ezt majd még szépítjük, viszont jelenleg a funkcionalitás a fő szempont, aminek ez az alap HTML5-ös fájl meg is felel.
Következzen az index.php, ami az egész CMS lelke lesz, az összes html kérést ez dolgozza fel, éppen ezért alkalmas lesz a karbantartás és fejlesztés módok kezelésére.
A tartalma pedig az alábbi lesz, amit később részletezek:
php<?php
if(file_exists(".MAINTENANCE")){
include("maintenance.html");
exit(0);
}
if(file_exists('.DEBUG')){
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors','On');
}
else{
error_reporting(0);
ini_set('display_errors','Off');
}
?>
A fenti kód működése nagyon egyszerű. Először megvizsgáljuk a file_exists függvénnyel, hogy létezik-e a .MAINTENANCE fájl. Ha létezik, akkor az include segítségével betöltjük a maintenance.html fájlunk tartalmát és az exit(0)-val megszakítjuk a kódunk futását, így gyakorlatilag kiírattuk a maintenance.html tartalmát.
Következő lépésben megnézzük, hogy a .DEBUG fájlunk létezik-e. Ha létezik, akkor bekapcsoljuk a php hibakijelzését, ha nem, akkor minden hibajelzést kikapcsolunk.
Ezzel végeztünk is az első résszel, a következő részben tovább finomítjuk a kódot, specifikációt kibővítjük és megoldjuk azt is, hogy a site administrátora karbantartás üzemmódban is elérjen minden funkciót.
A cikkben található könyvtárstruktúra és vonatkozó fájlok megtalálhatók a cms-1.zip fájlban
CMS rendszer készítése PHP nyelven 2.
Honlapkészítés, weboldal készítés kapcsán hasznos leírások
Webprogramozás és grafika, photoshop leírások és kiegészítők
Apró szösszenetek egy informatikus életéből
Még nem érkezett hozzászólás...