fejlesztés - 2011 április - 4 megfelelő bejegyzés.

Mutass mindent

Jelöld be, hogy főbb mely kategóriákat akarod olvasni, vagy ha csak egyet: kattints a nevére.


Haszprus

Első node.js http szerverem :)

©   Haszprus   |   fejlesztés javascript node.js

Gondoltam kipróbálom ezt is. Szerver oldali javascript ugye ("server side javascript done right"). Íme az app.js tartalma:

var http = require('http'); var server = http.createServer(function(request, response) { response.writeHead(200, { 'Content-type': 'text/plain' }); response.end('Hello world'); }); server.listen(8000); console.log('Server is listening on http://127.0.0.1:8000');

As seen in the tutorial. És ez igen könnyen már futtatható is (konzolba node app.js), és a http://127.0.0.1:8000 címen meghívva valóban kapunk is egy hello world oldalt.

Haszprus

Twig template engine

©   Haszprus   |   fejlesztés howto php

Gondoltam eljátszom a twig template kezelővel, ami erősen a symfony 2-höz és fabien potencierhez kötődik, tekintve hogy ő az atyja mindkettőnek és ez a symfony 2 default templating engine-je.

A telepítés igen könnyű pearrel:

pear channel-discover pear.twig-project.org pear install twig/Twig

(Egyébként nem muszáj pearrel telepíteni.)

Hozzuk létre a kis hello world sablonunkat:

<html> <head></head> <body> <p>Hello {{ name }}</p> <p>The date is {{ date }}</p> <p>The time is {{ time }}</p> </body> </html>

Mentsük el templates/hello.tpl-ként.

A template-et adattal kiszolgáló php a következőképp fog kinézni:

<?php include 'Twig/Autoloader.php'; Twig_Autoloader::register(); try { // templates könyvtárban keressük a template-eket $loader = new Twig_loader_Filesystem('templates'); $twig = new Twig_Environment($loader); $template = $twig->loadTemplate('hello.tpl'); echo $template->render(array( 'name' => 'World', 'date' => date('Y-m-d'), 'time' => date('H:i:s'), )); } catch (Exception $e) { die('Hiba: ' . $e->getMessage()); }

Ez ennyiből már működik is. A twig lehetőségeibe mélyebben nem megyek bele, aki használt már bármilyen template engine-t, annak sok újat nem fog mutatni.

Haszprus

CakePHP modellek

©   Haszprus   |   cakephp fejlesztés howto php symfony

Nemrég kezdtem el picit ismerkedni a CakePHP MVC frameworkkel, igazából egyáltalán nem célom ismertetni a képességeit vagy bármi hasonló, mindössze megragadnék egy dolgot ami megtetszett. A dolog nem újdonság, mint ahogy a CakePHP sem az, sőt.

Induljunk ki onnan, hogy már megvannak a tábláid a db-ben, amit még korábban létrehoztál, hogy Cake-et kezdtél volna használni. Nem feltétlen tipikus felállás, tudom.

Megmondod az érintett kontrollerednek egy tagváltozóban, hogy

$uses = array('Restaurant', 'Place');

, aminek a hatására a kontroller a Restaurant és a Place nevű modelleket példányosítani fogja és hozzárendeli a $this->restaurant ill $this->place változókhoz a Controlleren belül.

Amennyiben a megfelelő könyvtárban nincs Restaurant ill. Place modell (az ezekhez tartozó php fájl és osztály), akkor megnézi, hogy a db-ben létezik-e restaurant ill. place nevű tábla, és ha igen, akkor ezekből generál on-the-fly egy-egy modellt.

Lekérdezi tehát a db-ből a táblák oszlopait, és rögtön használhatod is valamennyi tagfüggvényt rájuk, mint pl. megkeresheted az 5-ös id-jű éttermet:

$this->restaurant->findById(5);

Nem csak id alapján kereshetsz, hanem bármi egyéb oszlopnév alapján is természetesen, tehát pl. $this->restaurant->findByType('lacikonyha') hívás is teljesen valid.

Nekem ebben az tetszik mondjuk egy symfonyval szemben, hogy a modellt nem kell generálnod, létrehozza neked on-the-fly, aminek különösképp ott érzem előnyét, ha valami változik az adatbázis sémában (nevezetesen nem kell újragenerálgatni a modelleket, ami marha kényelmes dolog). Nyilván hátránya, hogy egy IDE sem fogja kitalálni neked, hogy vajon milyen tagfüggvényeket hívhatsz meg az ilyen módon használt modelljeiden.