HTML

Friss topikok

Linkblog

A PHP zeneszerzésről

2012.05.12. 22:01 6aIL6ec

Manapság rengeteg PHP framework érhető el, mindegyik a maga előnyével és hátrányával. Többször nehéz dönteni, hogy egy projekthez mely keretrendszer felhasználása lenne a legjobb megoldás. Az egyik keretrendszernek az MVC része, egy másiknak pedig az ORM implementációja az igazi. A kérdés az, hogy van-e arra mód, hogy egy-egy keretrendszernek csak a számunkra hasznos részét használjuk fel, anélkül, hogy több megabájtnyi "felesleges" forráskódot húznánk be?

A válasz igen. Ennek a problémának az orvoslására van egy roppant egyszerűen felhasználható tool: a Composer.

A tool nem más, mint egy dependency manager, azaz segítségünkre lesz a különböző külső komponensek kezelésében - egy adott verzió letöltésén át a fájlok naprakészen tartásáig.

Beszerzés


A Composer a következő helyről szerezhető be: katt
Akár git -tel, akár kézi letöltéssel szedjük le a legfrissebb snapshotot, csak egy fájlról lesz szó, a composer.phar -ról, ami egy PHP Archive. A phar-ról bővebben lásd itt: katt.

 

Konfiguráció


A Composer egyszerűen konfigurálható be: szükség van egy composer.json fájlra, ez fogja tartalmazni azon modulok, komponensek listáját, amiket a Composer-re szeretnénk bízni.

Az alábbi példában a Symfony 2 framework HttpFoundation komponensét szeretném felhasználni a projectemben, annak is egy 2.*  -es (kettes major - bármilyen minor) verzióját.

{
    "require": {
        "symfony/http-foundation": "2.*"
    }
}

 

Futtatás


A Composer futtatásához szükség lesz parancssori php-re és egy git -re, mindkettő a PATH környezeti változón legyen jelen az adott op. rendszeren. A composer.phar-nak egy mappában kell lennie a composer.json fájllal.

>php composer.phar install
Installing dependencies
  - Installing symfony/http-foundation (dev-master)
    Cloning cf8e8324c68ce584525502702866485f17f1c8a5

Writing lock file
Generating autoload files

>

 

Eredmény


A Composer létrehoz egy vendor mappát, ebbe helyezi el az új fájlokat. Emellett mindennek a tetejére egy saját autoload.php fájlt is hoz létre a tool, így az új fájlok autoload része is meg van oldva számunkra.


Példa

<?php

//index.php

require_once '/vendor/autoload.php';

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

$request = Request::createFromGlobals();

$input = $request->get('name', 'World');

$response = new Response(sprintf('Hello %s', htmlspecialchars($input, ENT_QUOTES, 'UTF-8')));

$response->send();

Így amennyiben az alkalmazásunk mappaszerkezete a következő:

+-- composer.json
    ¦  vendor
    ¦   +-- autoload.php
¦ +--[Composer által kezelt mappák] L--index.php

 

az index.php meghívásakor "Hello World" (vagy "Hello <$_GET["name"] paraméter értéke>" ) jelenik  majd meg, mégpedig OOP módon a Symfony 2 -es framework Request és Response objektumokkal.

Módosítás

 
Ha további komponenseket szeretnénk hozzáadni a projecthez vagy egy másik verzióra cserélni a meglévőket, ekkor csak a composer.json fájl tartalmán kell módosítani és a 

>php composer.phar update

parancs futtatásával a Composer megoldja helyettünk a fájlok cseréjét. További parancsok és egyéb olvasnivaló itt lelhető meg: katt.

 

Mégvalami


Fontos, hogy csak olyan keretrendszerek komponensei, moduljai tölthetők be a Composerrel, amelyek egyrészt lazán kapcsoltak ( pölö Symfony 2 vagy a Zend), illetve a Composer package repository-jában fellelhetők. Ezutóbbi orvosolható, mivel egy egyszerű regisztráció után akár saját komponenseket is submitálhatunk a repóba.



Szólj hozzá!

Címkék: php package zend symfony framework keretrendszer git Composer dependency manager phar

A bejegyzés trackback címe:

https://elephpantfan.blog.hu/api/trackback/id/tr104501070

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása