Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:php:php_kodszervezes

< PHP

Kódszervezés

  • Szerző: Sallai András
  • Copyright © Sallai András, 2014, 2015
  • Licenc: GNU Free Documentation License 1.3

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/
    public/
        css/
        img/
        js/
        index.php
    tests/
    app/
        controllers/
        models/
        views/

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/

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

oktatas/programozas/php/php_kodszervezes.txt · Utolsó módosítás: 2019/08/22 10:36 szerkesztette: admin