Tartalomjegyzék
Kódszervezés
- Szerző: Sallai András
- Copyright © Sallai András, 2014, 2015, 2020
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Bevezetés
Minél nagyobb egy projekt, és/vagy minél hosszabb az életciklusa, a kód könyvtárakba szervezése annál fontosabb. Sokan sokféle könyvtár struktúrát, különféle elnevezési szokássokkal szoktak ajánlani. Itt most kiragadtam néhányat, hogy mindenki válogathasson kedvére.
Példa 001
approot/ |--inc/ |--dao/ |--scripts/ |--styles/ |--img/ |--static/ |--caches/ |--templates/ `--index.php
- inc - lényeges beemelt (include) fájlok
- dao - adatbázis függvények és osztályok
- scripts - javascript fájlok
- styles - CSS fájlok
- img - képek
- static - statikus tartalom - például felhasználó képei
- caches - átmeneti tároló
- templates - template és nézetfájlok
Példa 002
projekt1/ |--css/ |--img/ |--js/ |--functions/ |--views/ `--index.php
Példa 003
projekt1/ |--web/ | |--css/ | |--js/ | |--images/ | `--index.php |--config/ `--lib/
Ebben a példában van egy web könyvtár, amely publikus az látógatók számára. A config és a lib, azonban nem, mivel a web könyvtár a a webhely gyökérkönyvtára.
projekt1/ |--web/ | |--css/ | |--js/ | |--images/ | `--index.php |--config/ |--controller/ |--helpers/ |--lib/ |--modules/ `--views/
Példa 004
application/ |--config/ |--css/ |--helpers/ |--images/ |--js/ |--lib/ |--modules/ | `--blog/ | |--controllers/ | |--models/ | `--views/ |--views/ `--index.php
- helpers - függvénygyűjtemény
Példa 005
Vannak olyan típusú szerkezetek, ahol azt mondják legyen egy „app”, vagy hasonló könyvtár ide kerüljenek a háttérben (backend) elhelyezhető részek. Naplózás, beállítások, könyvtárak stb. Legyen egy „public” vagy „web”, vagy hasonló könyvtár ahova a nyilvános részeket tesszük, úgymint: CSS, JavaScript, stb. Ha pedig szükséges legyen egy „test” könyvtár a tesztekhez.
projekt1/ |--app/ | |--lang/ | |--routes/ | |--src/ | `--templates/ |--test/ `--web/ |--assets/ |--images/ |--scripts/ |--styles/ `index.php
- test - tesztek
Példa 006
projekt1/ |--app/ | |--controllers/ | |--models/ | `--views/ |--public/ | |--css/ | |--img/ | |--js/ | `--index.php `--tests/
Példa 007
projekt1/ |--htdocs/ | |--css/ | |--img/ | `--js/ `--resources/ |--library/ |--templates/ `--config.php
- library - harmadik fél könyvtárai
- templetes - újrahasználható elemek
Példa 008
projekt1/ |--public_html/ | |--css/ | |--img/ | | |--content/ | | `--layout/ | `js/ `resources/ |--library/ |--templates/ `--config.php
- css - saját CSS állományaid
- img - saját képeid
- js - saját JavaScript állományaid
- library - minden egyéni és harmadik fél könyvtára
- templates - saját újrahasznosítható elrendezéseid
- config.php - a fő konfigurációs fájl
Pelda 009
projekt01/ |--controller/ | |--viselkedes.js | `--kapcsolas.php |--model/ | | | `--uzletiLogika.php `--view/ |--index.html |--style.css `--updates.js
Pelda 010
projekt01/ |--bin/ |--config/ |--docs/ |--public/ |--resources/ |--src/ |--templates/ |--tests/ |--translations/
Pelda 011
projekt01/ |--database/ | `--projekt01.sql |--draft/ | `--projekt01.dia |--src/ | |--css/ | | `--style.css | |--images/ | |--includes/ | | |--config.php | | `--db.php | |--templates/ | | |--foot.tpl | | |--head.tpl | | |--index.tpl | | |--mas.tpl | | |--menu.tpl | | `--valami.tpl | |--index.php | |--mas.php | `--valami.php `--tests/ `--valami.phpt
Pelda 012
projekt01/ |--database/ | `--projekt01.sql |--draft/ | `--projekt01.dia |--src/ | |--css/ | | `--style.css | |--images/ | |--includes/ | | |--config.php | | `--db.php | |--templates/ | | |--foot.tpl | | |--head.tpl | | |--index.tpl | | |--mas.tpl | | |--menu.tpl | | `--valami.tpl | |--views/ | | |--mas.php | | `--valami.php | `--index.php `--tests/ |--mas.phpt `--valami.phpt
Pelda 013
projekt01/ |--database/ |--draft/ `--web/ |--config/ | `--config.php `--htdocs/ |--includes/ | `--db.php |--templates/ |--views/ `--index.php
Függelék
Konfigfájl elhelyezése
/home/ virtual-www/ zold.and/ htdocs/ index.php config/ mysql.json
$_SERVER['DOCUMENT_ROOT'] = /home/virtual-www/zold.and/htdocs/
Hibák mutatása
A hibák mutatása, esetleg a config.php végére:
ini_set("error_reporting", "true"); error_reporting(E_ALL|E_STRCT);
Praktikák
- A „includes” könyvtár helyett jó az „inc_” vagy az „inc” könyvtár.
- A CSS könyvtár lehet: „styles”, „css”, „stylesheets”
- Adminisztrációs célokra az „admin” könyvtár jó megoldás.
A konfigfájl olvasása:
require_once(realpath(dirname(__FILE__) . "/../config.php"));
Az alapkönyvtár beállítása:
define('ROOT', str_replace('\\', '/', __DIR__));
Esetleg:
define('LIBRARY_PATH', ROOT . '/application/libraries'); include(LIBRARY_PATH . '/valami.php');
Hibakezelés:
ini_set("error_reporting", "true"); error_reporting(E_ALL|E_STRCT);
Konfigurációs fájl
- config.php
<?php $app['baseUrl'] = "http://pelda.hu"; $app['resources'] = "/path/to/resources" $db['name'] = "nev1"; $db['user'] = "felhasznalo"; $db['pass'] = "titok"; $db['host'] = "localhost";
- config.php
<?php $config = array( "urls" => array( "baseUrl" => "http://pelda.hu" ), "paths" => array( "resources" => "/path/to/resources", "images" => array( "content" => $_SERVER["DOCUMENT_ROOT"] . "/images/content", "layout" => $_SERVER["DOCUMENT_ROOT"] . "/images/layout" ) ), "db" => array( "db1" => array( "name" => "nev1", "user" => "felhasznalo", "pass" => "titok", "host" => "localhost" ) ) );
Linkek
Könyvtár struktúra:
- https://github.com/phalcon/mvc (MVC struktúrák gyűjteménye)
Keretrendszerek:
Függőségkezelő:
Konfigfájlok: