Kategória: PHP, PHP5

Magento 1 PHP5.6 és Magento 2 PHP7.1 egy Apache

A fejlesztéseim korlátjába ütköztem amikor is a Magento 1-es porjektekhez még PHP5.6 kell de a Magento 2 fejlesztésekhez már PHP 7.1 kellene. Ubuntu 16 alatt viszonylag könnyű megoldani a problémát. Használhatnék Docker-t is, de másnál nem kell felhúzni a fejlesztői környzetet. Apache webszerverrel dolgozom, mert Magento fejlesztéseken kívül mással is dolgozom. A cél az, hogy egyszerű konfigurációval lehessen egymás mellett PHP5.6-os és PHP7.1-es projekteket futtatni.

Azt, hogy melyik oldal melyik PHP-t használja Vhostban fogjuk beállítani. A megoldához pedig PHP5.6 és PHP7.1-et telepítünk FPM módban:
sudo su
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install libapache2-mod-fastcgi php5.6-fpm php5.6 php5.6-dev php5.6-mcrypt php5.6-mbstring php5.6-mysql php5.6-zip php5.6-gd php5.6-xml php7.1-fpm libapache2-mod-fastcgi php7.1-fpm php7.1 php7.1-dev php7.1-mbstring php7.1-mysql php7.1-zip php7.1-gd php7.1-xml php7.1-curl php7.1-intl php7.1-json php7.1-mcrypt

“Magento 1 PHP5.6 és Magento 2 PHP7.1 egy Apache” Tovább olvasása

PHP Symfony 3.1 framework Sonata Admin 3.8 Bundle with PHP 5.6.x

Sajnos nem elég rég óta foglalkozom Symfonyvel ahhoz, hogy elsőre sikerüljön a Symfony 3 és a Sonata Admin Bundle összehozása PHP 5.6 alatt. Mivel úgy igazán nincs leírva sehol sem, legalábbis én nem találtam, többszöri Google-zás után sem, hogy melyik verzió, mivel hozható össze “gyorsan” (A packagist.org-on persze meg lehet találni a megfelelő megoldást ha időd mint a tenger, vagy a rutin meg az évek mondják meg).

Nos sikerült egy olyan megoldást találni, amivel a Sonata Admin behúzható egy 3-as Symfony alá. A FOS userbundle segítségével jó lenne megoldani a felhasználó kezelést, de ha minden igaz ez jelenleg még nem megvalósítható. A célprojektem kivitelezését meg nem húzhatom emiatt tovább, így másik alternatívát kell keresnem, nah de lássuk Symfony 3.1-alatt a Sonata Admin-t:

Ehhez a Symfony 3.1-es változatával kell létrehozni egy projektekt Composer segítségével: “PHP Symfony 3.1 framework Sonata Admin 3.8 Bundle with PHP 5.6.x” Tovább olvasása

Magento GLS csomagpont modul – térképes keresővel felugró ablakban

Az általam fejlesztett Magento GLS csomagpont modul egy könnyebben beépíthető és használatát tekintve kényelmesebb megoldást kapott. A GLS csomagpontok kiválasztására a szállítási mód mellett egy nyomógomb került elhelyezésre “Település választása”, amelyre kattintva egy felugró ablakban van lehetőség kiválasztani a GLS csomagpontot.

Magento-Newsweb-GLS-csomagpont-terkepes-valaszto-gomb

A felugró ablakon egy rövid útbaigazítás segíti a vásárlót, hogy most mit is kell tennie. Amint kiválasztott egy átvételi pontot a “Csomagpont kiválasztása” című gombra kattintva bezáródik az ablak. “Magento GLS csomagpont modul – térképes keresővel felugró ablakban” Tovább olvasása

Megjelent a Magento 2, érdemes-e váltani most Magento 1-ről Magento 2-re?

A Magento 2 egy jobban hangolható webáruházként jelent meg. Jelenleg kb 240 000 Magento 1-es webáruház fut a hivatalos adatok szerint a világon. A megjelenéssel kapcsolatban sokakban felmerülhet az alábbi kérdések valamelyike:

Mikor érdemes Magento 2-re váltani?
Gyorsan kis ráfordítással át lehet-e állni a Magento2-re?
Megéri-e váltani Magento 1-ről 2-re?

Ezekre a kérdésekre keressük most a választ:

“Megjelent a Magento 2, érdemes-e váltani most Magento 1-ről Magento 2-re?” Tovább olvasása

Tökéletes ajándék karácsonyra Magento fejlesztőknek – NetBeans helyett, PHP Strom és Magicento

Manapság a legelterjettebb és széles körben használt fejlesztő eszköz a PHP keretrendszereket is támogató NetBeans. (https://netbeans.org/). Magento rendszer fejlesztéséhez is megfelelő választás lehet, mivel ingyenes és kiegészítőkkel ugyan de támogatja a Magento fejlesztést.

Mikor lehet elegendő nekünk a NetBeans Magento fejlesztésben?

Amennyiben mi a Magento nézet fáljait módosítjuk, kisebb blokkokat építünk be, kisebb átírásokat módosításokat végzünk, vagy vásárolt modulokat illesztünk be, esetleg kisebb lélegzetvételű modulokat fejlesztünk a Magentoban, akkor számunkra tökéletes választás lehet a NetBeans.

Van amikor már a NetBeans is kevés lehet? “Tökéletes ajándék karácsonyra Magento fejlesztőknek – NetBeans helyett, PHP Strom és Magicento” Tovább olvasása

Boltok kezelése Magentoban | Admin Panel > CMS > Pages HTTP 404

Magento webáruház alatt egyszerre többféle boltot is tudunk üzemeltetni többféle boltnézettel, ennek előnye, hogy több boltból jövő rendelést egy helyen tudunk kezelni. Különböző boltnézeteket akkor szoktak létrehozni, ha a weboldal többnyelvű. A korábban feltelepített minta adatbázissal felkerült a webshopba, egy angol, német, francia nyelv esetén használható bolt nézet.

Mi most egy nyelven, azaz magyarul szeretnénk egy webshopot üzemeltetni, ezért nekünk ezen boltnézetekre nincs szükségünk. Az angol az alapértelmezett bolt nézet, ezért azt törölni nem tudjuk. A másik két nyelvet, német és francia azonban minden gond nélkül, ehhez látogassunk el a ” Rendszer \ Boltok kezelése ” menüpontba. Válaszuk ki az adott nyelvű bolt nézetet, majd a fent megjelenő sárga gombok segítségével töröljük a bolt nézetet.
!!! Már müködő webáruház esetén mindenképpen készítsünk, biztonsági mentést az adatbázisról !!!

A törlések után, válasszuk ki az alapértelmezett angol bolt nézetet és egyszerűen nevezzük át magyarra.
Ezután látogassunk el a Rendszer \ Cache kezelés, és a Rendszer \ Index Managment menüpontokhoz, töröljük a cache-t és a frissítsük az indexeket.

Admin Panel > CMS > Pages HTTP 404

“Boltok kezelése Magentoban | Admin Panel > CMS > Pages HTTP 404” Tovább olvasása

CodeIgniter adatbázis beállítása

Korábban bemutattam, hogyan lehet egyszerű weboldal felépítést megvalósítani CodeIgniter használatával. Ezzel a megoldással, egyszerű de még csak statikus oldalakat tudunk létrehozni. Ez egy 15-20 évvel ezelőtt még nagy csodának számított, azonban a weboldal manapság,  akkor lehet hatékony, ha tartalmakat, adatokat tudunk megjeleníteni rajta, amellyel aktualizálni tudjuk az oldalt. Emiatt az esetek nagy részében szükségünk lehet adatbázis kapcsolatra. Mivel WAMP környezettel dolgozom és MYSQL-t használok a CodeIgniterben nincs más dolgom, mint megkeresni az application\config\database.php file-t és beállítani az adatbázis elérését. “CodeIgniter adatbázis beállítása” Tovább olvasása

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