All posts in Zend

Darrerament s’ha publicat un webminar a la secció IBM i de Zend sobre l’adopció de PHP com a llenguatge de propòsit general per a la gestió de negocis i producció.

Es tracta de la implementació d’un ERP escrit en PHP per a Aalberts Industries.

Resulta força interessant l’arquitectura desplegada per integrar l’ERP i el MES amb la producció, tot en PHP amb algunes crides RPG a codi legacy.

L’ERP s’executa sobre l’IBM i i el MES sobre una Debian. El MES requeria accés des de fora de la companyia i interconnexió amb tota la maquinaria de la fàbrica.

Les conclusions resulten força interessants:

• PHP is a universal platform independend programming language
• It’s fast and comprehensive
• Beside WEB programming it can be used for interfaces and processes
• Even real time data analysis is possible
• Zend Server provides the same environment on all platforms
• It’s easy to develop, to trace and to maintain
• It makes fun and provides fast success

Podeu veure aquesta presentació en aquest enllaç

http://static.zend.com/topics/GroupMT-PHP-20120919.pdf

Captura-Zend-2BServer-2BCommunity-2BEdition-2B-2BGoogle-2BChrome

Seguint les instruccions de la documentació de Zend, instal·larem el Zend Server Community Edition a un Ubuntu Server 10.10 64 bits des del repositoris DEB de Zend.

Primer de tot, afegim el repositori de Zend a l’arxiu /etc/apt/sources.list:
## Repositori de Zend per a Zend Server Community Edition
deb http://repos.zend.com/zend-server/deb server non-free

Seguidament instal·lem la public key d’aquest repositori
wget http://repos.zend.com/zend.key -O- | sudo apt-key add -

I actualitzem el llistat de paquets
sudo apt-get update

I procedim a instal·lar els paquets:
sudo apt-get install zend-server-ce-php-5.3 php-5.3-extra-extensions-zend-server php-5.3-loader-zend-server zend-server-framework-dojo zend-server-framework-extras control-panel-zend-server

I accedim al Zend Server GUI pel port :10081/ZendServer del servidor on l’hem instal·lat:

Nota: Per a l’edició de la màscares de xarxa en format CIDR, seguim les instruccions del document CIDR Block Prefix.

prodcutBanner-ZendServer-IBMi

Diu la Zend Newsletter que el PHP s’ha convertit en el llenguatge d’elecció per a la modernització d’aplicacions COBOL i RPG, i Zend Server 5.0 amb suport per a AS/400 – IBM i tindrà un paper clau per garantir implementacions exitoses.

Més informació a http://www.zend.com/products/server/zend-server-ibm-i

És clar que falta per veure l’impacte d’Open Access per a RPG dins l’entorn web, les espectatives són molt altes.

El Zend framework ens ho posa certament fàcil per a connectar amb una base de dades ORACLE.

La classe necessària i que hem d’incloure és la de les connexions OCI

require_once ('Zend/Db/Adapter/Pdo/Oci.php');

Creem un array on posarem totes les dades habituals de connnexió amb una base de dades

$arrayConnexio = array(
'host' => 'xx.xx.xx.xx',
'port' => 'xxxx',
'dbname' => 'SID_DE_LA_BBDD',
'username' =>'usuari',
'password' => 'password'
);

El host pot ser la seva adreça IP o bé el seu nom.
El port és el port de comunicació amb la BBDD (habitualment el 1521)

Ara només ens quedarà crear la instància de la classe i …

$laConnexioBBDD = new Zend_Db_Adapter_Pdo_Oci($arrayConnexio);

ja ho tindrem !

A partir d’aquí la manera de treballar és l’habitual amb les connexions a base de dades:

$rowset = $laConnexioBBDD->fetchAll($laQuery);

Pot ser d’interès especificar amb quina codificació de caràcters volem treballar. Així no depenem de la instal·lada per defecte al servidor.

$arrayConnexio = array(
...
'charset' => 'utf8'
);

Screenshot-Site-report-for-app.news_.zend_.com-Mozilla-Firefox

Sembla ser que Zend, la companyia creadora del nucli PHP actual i coneguda com The PHP Company, no coordina gaire bé les campanyes de marketing.

Al Zend Monthly Newsletter – October 2008 observem com la URL conté l’extensió ASPX, típica d’ASP.NET de Microsoft, un dels grans competidors de Zend.

http://app.news.zend.com/e/er.aspx?s=714&lid=586&elq=73DFF093316E4461895C768D98F5181D

Sembla ser que el servidor de notícies és hostatjat per l’empresa canadenca de Marketing OnLine Eloqua.

El departament de Marketing de Zend haurà de tenir més cura a l’hora de subcontractar serveis.

Screenshot-PHP-zajaj-zajaj.class.php-Eclipse-Platform-

Des de la darrera versió del PDT per a Eclipse, aquest entorn de desenvolupament està guanyant molts punts per a esdevenir de referència també entre els programadors PHP. De fet la darrera versió del Zend Studio es basa en Eclipse, i la mateixa Zend ha participat en la creació del PDT, l’opció gratuita.

La instal·lació es ben senzilla, descarreguem la darrera versió estable d’aquesta plana, la descomprimim i la movem a la carpeta /opt

Cal tenir el Java Runtime Environment, si no el tenim ja, farem:
sudo apt-get install sun-java6-jre sun-java6-plugin

Afegim el punt de menú seguint aquestes instruccions i ja tenim l’entorn de programació PHP totalment operatiu:

Captura-Preferences

Per a completar el projecte de control de versions per a l’estació de treball Ubuntu, només caldrà indicar al Zend Studio que ha d’emprar una versió de Subversion que suporti SSL.

Anirem a Tools/Preferences/Source Control i indicarem la ruta per a subversion de la nostra distribució, generalment /usr/bin/svn:
I ja podrem fer servir el nostre IDE PHP preferit, el Zend Studio , amb control de versions sobre SSL :-)

zf

Zend ha alliberat la versió 1.5 del seu FrameWork, un conjunt de classes per a facilitar i harmonitzar les tasques més freqüents en les fases de desenvolupament.

Estem convençuts de que trigarem poc temps en veure aquest FrameWork com una part vital en el procés de supremacia PHP en els servidors d’aplicacions web 2.0.

Instal·lació
Per instal·lar el Zend Framework emprarem el repositor Subversions de Zend, per així restar actualitzats regularment amb uns mínims costos de manteniment. Si no tenim el Subversion instal·lat, executarem:
apt-get install subversion
I un cop fet això, en una carpeta accessible per l’usuari que executa Apache però inaccessible per cap configuració de VirtualServers, en el nostre cas /var/www/NetStudio executarem:
svn checkout http://framework.zend.com/svn/framework/standard/trunk ZendFramework

Després d’uns minuts de descàrrega ja el tindrem al nostre servidor. Ara cal notificar als scripts que poden accedir-hi modificant la clausula include_path del php.ini:
vim /etc/php5/apache2/php.ini
indicant-hi en el nostre cas:
include_path = ".:/var/www/NetStudio/ZendFramework/library"
Un cop fet això, rebotarem l’Apache amb
/etc/init.d/apache2 restart

Amb aquest senzill script de prova, certificarem que la instal·lació ha estat un èxit:
<?php

require_once 'Zend/Http/Client.php';

// Recuperem corretge.com:
$client = new Zend_Http_Client('http://bloc.corretge.cat');
$resposta = $client->request();

echo '<pre>';
var_dump($resposta);
echo '</pre>';
?>

Si obteniu alguna cosa similar a la imatge de sota, vol dir que ja està operatiu el Zend Framework, a disfruta-ho!

Podeu enviar els vostres dubtes o consultes al fòrum CCCPHP.

Guia de referència per a programadors del Zend Framework.

Templates a Zend Studio

Categories: PHP, Zend
Comments: No
zend_studio_box_gif

L’IDE de Zend, el Zend Studio, ens permet la creació de Templates (plantilles) per agilitzar les tasques de programació més repetitives.

La filosofia de programació orientada a objectes ens diu que les propietats d’una classe no han de ser accessibles fora de la mateixa classe si no és amb la utilització de mètodes.

Així veiem que sempre que programem una classe tenim tres codificacions repetitives que tractarem amb les respectives plantilles.

Dins el Zend Studio anirem a Tools / Preferences / Temlates i afegirem (add) les tres codificacions PHP:

crtVAR
/**
* Declarem la propietat ${VARIABLE}
*
* @var string
*/
protected $${VARIABLE};

crtSET
/**
* Assignem un valor a $${VARIABLE}
*
* @param string $${VARIABLE}
*/
public function set_${VARIABLE}($${VARIABLE})
{
$this->${VARIABLE} = $${VARIABLE};
}

crtGET
/**
* Retornem el valor de $${VARIABLE}
*
* @return string
*/
public function get_${VARIABLE}()
{
return $this->${VARIABLE};
}

I observarem com de senzill és crear una classe PHP amb les propietats protegides i els mètodes per accedir a aquestes propietats.