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.

A napokban frissítettük a Zend Framework-öt a korábban elkészített Céges Demo portálunkban. Ennek következménye pár apró hiba bukkant a felszínre. Ennek okai megszűnő, vagy átnevezett metódusok voltak. Azonban pár apró javítással a korábban megírt portálunk hibamentesen működésre fogható. Most vegyük sorra milyen átalakításokat kellett elvégezni:

index.php fájlban:

//Zend_Loader betöltése a ZF-ös függvények használata miatt
require_once '../lib/Zend/Loader.php';
Zend_Loader::registerAutoload();

Sorokat cseréljük le, mivel megváltozott a Zend Loader felépítése, használata, az új kód alább látható:

//Zend_Loader betöltése a ZF-ös függvények használata miatt
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();

Az application\controllers\ IndexController-ben végzendő javítások:

A Zend_Filter azaz a Filter objektumban a get metódusból filterStatic metódus lett, így a kód az alábbiakban változik minden eseménynél ahol használjuk a Zend_Filter::get() metódusát, helyette használjuk a filterStatic metódust, pl így:

//$entered_captcha = Zend_Filter::get($this->getRequest()->getPost('entered_coded'), 'StripTags');
//javítva erre:
$entered_captcha = Zend_Filter::filterStatic($this->getRequest()->getPost('entered_coded'), 'StripTags');

Ezt a módosítást mindenhol el kell végezni, ahol a Zend_Filter::get() metódusát használtuk.

Az processRegisztracioAction-ben használunk egy saját készítésű e-mail ellenőrzőt annak eldöntésére, hogy az adott e-mail címmel regisztráltak-e már? Azonban application\models\Regisztracio model-unk emailkontroll metódusát e-mail cím átadása nélkül hívtuk meg. Ezt a hibát is orvosoltuk, korábban:

if(Regisztracio::emailkontroll()){...}

és most:

if(Regisztracio::emailkontroll($r_email)){...}

A Regisztracio model-ünknél maradva az emailcontroll() metódus is átalakításra szorult. PHP verzió frissítés miatt, de valami miatt az if utasítás ilyen fajta:

$sql = 'SELECT * FROM felhasznalok WHERE felh_email = ?';
if ($result = $db->fetchRow($sql, array($email))){...}

használata már nem volt engedett, ami hibát okozott a gépezetben, ezért ketté kellett bontanunk ezt a sort így:

$sql = 'SELECT * FROM felhasznalok WHERE felh_email = ?';
// if ($result = $db->fetchRow($sql, array($email)))
$result = $db->fetchRow($sql, array($email));
if ($result) {
//ha van az adatbázisban akkor false érték
return false;
} else {
//ha nincs true mivel beleírható
return true;
}
//} // if ($result = $db->fetchRow($sql, array($email)))

Tulajdonképpen ezzel a pár módosítással a korábban elkészített Céges Demo alkalmazásunk alkalmassá vált a Zend Framework 1.11-es verziójának használatára.

A PHP 5.3-as változatánál előfordulhat, hogy a application\config\Globals.php\getDBConnection() metódusában használt PDO::MYSQL_ATTR_INIT_COMMAND utasítás miatt hibát dob a portál, ennek kivédéséről itt olvashattok.

Reklámok

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s