Kategória: PHP, PHP5

Zend Framework 1.x-ről váltás Zend Framework 2.x-re 1.rész Céges Demo2 Portal

A Zend Framework 1.x változatainak támogatását a Zend 2014-ig tervezi. Mivel több olyan 30-40%-os készültségben álló projektem is van, amely a Zend Framework 1.12-es változatával fut, arra a megállapításra jutottam, hogy a keretrendszer átállás a későbbiekben nagyobb munka lehet, ezért ennek elébe futva, megpróbálom a Zend Framework 1.12-es változataival futó projektjeimet átalakítani Zend Framework 2.x-es változatra. Mindamellett a Zend Framework 2 már támogatja a HTML5-ben megjelenő új elemeket is, amely nagy hasznomra lenne most.

Első lépésként az már látszik, hogy míg korábban Dreamweawerrel dolgoztam, ez a szoftver a jövőben már nem tud kiszolgálni megfelelően, ezért a fejlesztés gyorsítása érdekében az ingyenes Net Beans IDE-t fogom használni, amely nem meglepő módon támogatja (kiegészítővel) a PHP és a Zend Framework 2-őt.

Első lépésben letöltöttem a Net Beans 7.3.1 változatát és Tools \ Plugins \ Available Plugins-ek közül telepítettem a szükségeseket. (PHP, Zend Framework 2) “Zend Framework 1.x-ről váltás Zend Framework 2.x-re 1.rész Céges Demo2 Portal” Tovább olvasása

CodeIgniter layout és nézetek (views) kezelése

A CodeIgniter szerencsére, egy gyors könnyen testreszabható kis keretrendszer. Most egy példát mutatunk arra, hogyan lehet egy dinamikus weboldalt különböző elrendezések alapján felépíteni. Az elrendezés(layout) kialakítása sokkal egyszerűbbnek tűnik mint Zend Framework használatával. Kevesebb a megkötés szabadabb a fejlesztő.

Működési elvét tekintve megegyezik a legtöbb MVC felépítéssel bíró PHP-s keretrendszerrel, a Vezérlők(Controller), Események(Action), Nézetek(Views) itt is megtalálhatóak, és ugyanazon elv szerint működnek mint bármelyik hasonló keretrendszerben.

De mi is ez működési elv?

Az összes szerverhez érkező kérést a public_html könyvtárban található .htaccess fájllal az  index.php fájlra irányítjuk.

A public_html fájlban található .htaccess tartalmát módosítsuk erre:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php?$1 [L]

Ehhez Apache szerverünkön a mod_rewrite modulnak természetesen be kapcsolt állapotban kell lennie.

Ha meghívjuk a http://ci.tld/welcome URL címet, akkor a Welcome vezérlő Index eseménye kerül meghívásra azaz ez a kérés: http://ci.tld/welcome/index kerül kiszolgálásra. A kérés hatására betöltődik a welcome vezérlő index eseményében meghatározott nézet, alapesetben ez:

$this->load->view(‘welcome_message’);

azaz a CodeIgniter betölti a views könyvtárunkban található welcome_message.php nevezetű fájl tartalmát. Ha minden egyes eseményhez elkészítünk egy ilyen nézetet, akkor egy szál híján visszatérünk a statikus oldalak világába. “CodeIgniter layout és nézetek (views) kezelése” Tovább olvasása

Zend Framework egyszerre több adatbázis használata – Zend_Db_Table_Abstract objektummal

Egy nagyobb portál építésén dolgozunk jelenleg. Egy meglévő adatbázis felhasználásával kell ezt elkészítenünk, viszont az adatbázisban redundáns adattárolás és átgondolatlan kialakítás a jellemző. Úgy döntöttünk, hogy gyökeresen kezeljük a problémát, egy új adatbázist építünk, mivel jelenleg még nem tartalmaz  túlságosan kezelhetetlen nagy adatmennyiséget, viszont ha ez ebben a formában marad, akkor  kontrollálhatatlanná válik.

A probléma adatok átemelése a régi adatbázisból az újba. Többféle megoldás is létezik erre, egyesével átgépeljük :D, csv, xls export improt, ugyanez XML-el, de  a legkézenfekvőbb egy automatizmus elkészítése az adattisztítás, leválogatás, adatátemelésre. Erre jó egy egyszerűbb adatfeldolgozó tisztító Zend-es alkalmazás elkészítése, tényleg egyszerű, ne gondoljunk semmi agyafúrt hatalmas rendszerre.

A fenti megoldási terv magában foglalja több adatbázissal való kapcsolat létesítését, és adatok mozgatását. Mivel gyors megoldásra volt szükségünk, megtaláltam Jeroen Keppens egy írását ezzel a témával kapcsolatban a “blogján”. A Different User / Host megoldást használtam.  A példában amit ecsetel két adatbázisban lévő egy-egy adatbázistáblának a JOIN megoldását mutatja be Zend_Db_Table_Abstract objektum segítségével.

Gondoltam én is használom a megoldást, viszont nekem nem egy JOIN-os SELECT-es megoldásra volt szükségem, hanem egy SELECT majd INSERT INTO  a másik adatbázisba, ill sok INSERT INTO 😛 “Zend Framework egyszerre több adatbázis használata – Zend_Db_Table_Abstract objektummal” Tovább olvasása

CodeIgniter a szerveren

Ha CodeIgniter PHP keretrendszert használunk, akkor alapértelmezett módon a keretrendszer forrása a szerverünk public_html könyvtárába kell tenni. Nos ez nem biztos, hogy jó megoldás, ugyanis a public_html könyvtár a szerveren egy nyilvános könyvtár így mindenki számára gond nélkül elérhető. Ebbe a könyvtárba csak azon dolgokat érdemes tenni amiből nem lehet baj ha láthat bárki, ide kerülhetnek a css, js, illetve képfájlok egy index.php és egy .htaccess fájl.  A keretrendszer és alkalmazásunk kódja egy szinttel feljebb kerülnek elhelyezésre, azaz már nem publikusak és nem érhető el bárki számára, ez egy alap biztonságot is ad. Érdemes tehát, így használni a keretrendszert. De mit kell, ehhez tenni? “CodeIgniter a szerveren” Tovább olvasása

PHP – változó aktuális értékének kiíratása – print_r(), var_dump(), Zend_Debug::dump()

Alkalmazás, weboldal készítése során, hibajavítás esetén sokszor szükségünk lehet, változóink aktuális értékére. PHP-ben én erre ezeket szoktam használni: print_r(), amely remekül kiírja egy tömb összes elemét, szükségünk lehet a var_dump() parancsra, amely kb. ugyanazt tudja mint a print_r() a különbség annyi, hogy itt a PHP azt is kiírja milyen típusú adattal dolgozunk és ez milyen hosszú. A var_dump Zend Framework-os megfelelője a Zend_Debug objektum dump() tagfüggvénye. Meghívása a következőképpen lehetséges Zend_Debug::dump($variable); .

 

sitemap.xml készítése Zend_Navigation objektummal

Ha egy egyszerűbb nem teljesen dinamikus weboldalunk van amit Zend Framework alapokon fut és az oldal navigációját, nem egy navigation.xml fájlból vagy adatbázisból építjük fel, ebben az esetben is szükségünk lehet, a sitemap-re. A sitemap meglétét a keresők is pozitívan értékelik egy weboldal esetében, még jobb ha ez a sitemap, az aktuális oldaltérképet tartalmazza. Ha vannak olyan speciális oldalaink amit úgy generálunk,  azaz tartalma megszűnhet változhat, az oldal maga megszűnhet vagy létrejöhet akkor ennek a sitemap.xml-nek is változnia kell!

Mit kell ehhez tennünk?

Készítsük el a

SitemapControllert extends Zend_Controller_Action {
public function init() {
}


public function indexAction(){
}
}

és a hozzátartozó nézetet views/scripts/sitemap/index.phtml fájlt.

init() függvényünk tartalma legyen:

$this->_helper->contextSwitch()
->addContext('txt', array('suffix'=>'txt', 'headers'=>array('Content-Type'=>'text/plain')))
->addActionContext('robots','txt')
->addActionContext('sitemap','xml')
->initContext();

Ezzel beállítjuk kontextust, hogy szöveges tartalmat még pedig XML-t generálunk.

indexAction(){} eseményünk tartalma mégpedig legyen az alábbi:

$pages = array(
array(
'label' => 'Home',
'uri' => '/',
));

“sitemap.xml készítése Zend_Navigation objektummal” Tovább olvasása

Céges Demo portálban Zend Framework verzió frissítése 1.7-ről 1.11-re és velejárói

Úgy gondoltuk elérkezett az ideje egy kis frissítésnek. Sokan panaszkodtak, hogy némi átalakítás hiba javítás után tudják csak a Céges Demo portált életre kelteni. Ennek oka az volt, hogy míg az első pár részben a keretrendszer 1.5-verziójával dolgoztunk majd egy kis idő múlva áttértünk az 1.7-es változatra mostanság az 1.11-változat érhető el mindenki számára. Sajnálatos módon sokan nem olvasták el a láblécet, vagy el sem jutottak addig, hogy megjelenjen számukra az információ, hogy a korábban közzétett kódok és letölthető forráskódokhoz a keretrendszer mely változata szükséges. “Céges Demo portálban Zend Framework verzió frissítése 1.7-ről 1.11-re és velejárói” Tovább olvasása