All posts in Programació

Al web de composer ens expliquen les diferents maneres d’instal·lar composer, però trobem a faltar una: instal·lar composer emprant composer. Val a dir que només funciona en sistemes que tinguin muntada la carpeta /home o /Users amb l’opció exec que permet executar arxius executables.

Primer de tot necessitem la darrera versió de composer, la descarreguem fent

wget https://getcomposer.org/composer.phar

si no teniu wget instal·lat

curl -o composer.phar https://getcomposer.org/composer.phar

I procedim a la instal·lació de composer executant

php composer.phar global require composer/composer:@dev

ja podem esborrar el composer.phar i editar l’arxiu .bashrc or .bash_profile per habilitar el path de composer

export PATH=~/.composer/vendor/bin/:$PATH

executem composer

i veiem que ja tenim instal·lat el composer via paqueteria composer:

composer packagist

Al haver afegit al nostre PATH la carpeta dels executables de composer, ara podrem fer servir tots els paquets que instal·lem amb global require, per exemple phing

composer global require phing/phing:@dev

Phing one tool to rule them all

El proper dijous 4 de setembre, tindré el plaer de fer una presentació sobre l’eina Phing. Serà a 2/4 de 8 del vespre al coEspai de Girona en el marc de les xerrades tècniques que ofereixen els companys de Digitals Girona.

Xerrada phing 20140904 Digitals Girona coEspai

 

Explicaré què és Phing, per a que es fa servir, com ens pot ajudar en les nostres tasques diaries i exemples d’ús i d’extensió del pròpi phing.

Podeu apuntar-vos al web de Digitals Girona, al post Ponència tècnica sobre PHP d’Àlex Corretgé, de ben segur que la trobareu interessant.

profilingPHP

Intro to Xhprof and Xhgui

En Davey Shafik ens explica en dues entrades al web Engine Yard com fer profiling d’execucions PHP amb el profiler de Facebook Xhprof i com visualitzar les dades còmodament amb Xhgui.

 

Dos interessants articles que ens endinsa en les noves eines existents per conèixer detalladament que està fent els nostres scripts PHP quan s’executen: Ús de CPU, memòria, cops que s’ha cridat un mètode o funció i el graph de crides.

 

En la millora de la performance de les nostres aplicacions, també s’aplica el principi de Pareto, que ens diu que en molts casos el 80% dels efectes són conseqüència del 20% de les causes. Així doncs aquestes eines ens ajudaran a trobar fàcilment aquest 20% de codi que degrada el 80% de l’execució.

PhalconPHP is a web framework delivered as a C extension providing high performance and lower resource consumption.

Install it is easy if you have experience building PHP. There is a port for FreeBSD if you disagree compilations :)

In this post: Instal·lant una màquina blava – 4) PHP 5.4 you can view the apt-get install’s mandatory to build PHP and other extensions.

The requirements are : sudo apt-get install php5-dev php5-mysql gcc make

As explained in the README file: Follow these instructions to generate a binary extension for your platform: git clone git://github.com/phalcon/cphalcon.git cd cphalcon/build export CFLAGS="-O2 -fno-delete-null-pointer-checks" phpize --clean phpize ./configure --enable-phalcon make sudo make install Add extension to your php.ini extension=phalcon.so Finally restart the webserver

To test it, you can install an example app: INVO https://github.com/phalcon/invo cd /var/www git clone git://github.com/phalcon/invo.git cd invo echo 'CREATE DATABASE invo' | mysql -u root -p cat schemas/invo.sql | mysql -u root -p invo vi app/config/config.ini [database] host = localhost username = root password = ***** name = invo

Really fast! Are good news

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

php-2B5.4.8

Fa uns dies es va començar a desenvolupar en la versió 5.4.8 a la branca master del repositori git de php:

Però ha sobtat que no s’hagi alliberat la versió 5.4.7 que si que ha estat tagejada al gitrepo el dia 29 d’agost.

La darrera notícia al web oficial de PHP és l’alliberament de la 5.4.6. Ves que no sigui de vacances que s’encarrega de les actualitzacions ;-)

PHP-wich-2Bpublic-2Bcloud-2B2012

A l’enquesta el·laborada per Zend el novembre del 2011 a 3.335 desenvolupadors de PHP, que podeu trobar a aquest enllaç:

http://venturebeat.com/2012/01/11/what-developers-will-be-doing-learning-listening-to-in-2012-survey-results/

Developer Pulse (PDF)

Observem que un 3% dels enquestats respon que durant el 2012 emprarà regularment RPG, el llenguatge de programació per excel·lència del sistema IBM i (AS/400).

 

Coincideix en número amb el percentatge de desenvolupadors que indiquen que el 2012 faran servir la cloud pública d’IBM, la recent IBM Smart Cloud.

 

Era previsible, els desenvolupadors d’IBM i som poquets, però incodicionals d’IBM :)

PROGRAMMING-LANGUAGE-3-620x3450

A udemy (actualment estan fent canvis en el seu servidor i es trenquen tots els enllaços) han fet un inforgraphic força interessant que compara PHP, Ruby i Python en quant a acceptació, ofertes laborals, corva d’aprenentatge, etc…

Si sou desenvolupadors PHP, no oblideu de posar ‘PHP Developer’ en alguna banda del vostre perfil LinkedIn, i així comptar a les estadístiques. Una dada: a 15 de desembre del 2.011, segons udemy, hi havia 18.950 perfils LinkedIn a la cerca ‘PHP Developer’, a dia d’avui 229.597!

PHP Compiler options

Categories: PHP
Comments: No

–with-libdir=NAME Look for libraries in …/NAME rather than …/lib
–disable-rpath Disable passing additional runtime library
search paths
–enable-re2c-cgoto Enable -g flag to re2c to use computed goto gcc extension

SAPI modules:

–with-aolserver=DIR Specify path to the installed AOLserver
–with-apxs[=FILE] Build shared Apache 1.x module. FILE is the optional
pathname to the Apache apxs tool [apxs]
–with-apache[=DIR] Build Apache 1.x module. DIR is the top-level Apache
build directory [/usr/local/apache]
–enable-mod-charset APACHE: Enable transfer tables for mod_charset (Rus Apache)
–with-apxs2filter[=FILE]
EXPERIMENTAL: Build shared Apache 2.0 Filter module. FILE is the optional
pathname to the Apache apxs tool [apxs]
–with-apxs2[=FILE] Build shared Apache 2.0 Handler module. FILE is the optional
pathname to the Apache apxs tool [apxs]
–with-apache-hooks[=FILE]
EXPERIMENTAL: Build shared Apache 1.x module. FILE is the optional
pathname to the Apache apxs tool [apxs]
–with-apache-hooks-static[=DIR]
EXPERIMENTAL: Build Apache 1.x module. DIR is the top-level Apache
build directory [/usr/local/apache]
–enable-mod-charset APACHE (hooks): Enable transfer tables for mod_charset (Rus Apache)
–with-caudium[=DIR] Build PHP as a Pike module for use with Caudium.
DIR is the Caudium server dir [/usr/local/caudium/server]
–disable-cli Disable building CLI version of PHP
(this forces –without-pear)
–with-continuity=DIR Build PHP as Continuity Server module.
DIR is path to the installed Continuity Server root
–enable-embed[=TYPE] EXPERIMENTAL: Enable building of embedded SAPI library
TYPE is either ”’shared”’ or ”’static”’. [TYPE=shared]
–with-isapi[=DIR] Build PHP as an ISAPI module for use with Zeus
–with-litespeed Build PHP as litespeed module
–with-milter[=DIR] Build PHP as Milter application
–with-nsapi=DIR Build PHP as NSAPI module for Netscape/iPlanet/Sun Webserver
–with-phttpd=DIR Build PHP as phttpd module
–with-pi3web[=DIR] Build PHP as Pi3Web module
–with-roxen=DIR Build PHP as a Pike module. DIR is the base Roxen
directory, normally /usr/local/roxen/server
–enable-roxen-zts ROXEN: Build the Roxen module using Zend Thread Safety
–with-thttpd=SRCDIR Build PHP as thttpd module
–with-tux=MODULEDIR Build PHP as a TUX module (Linux only)
–with-webjames=SRCDIR Build PHP as a WebJames module (RISC OS only)
–disable-cgi Disable building CGI version of PHP

General settings:

–enable-gcov Enable GCOV code coverage (requires LTP) – FOR DEVELOPERS ONLY!!
–enable-debug Compile with debugging symbols
–with-layout=TYPE Set how installed files will be laid out. Type can
be either PHP or GNU [PHP]
–with-config-file-path=PATH
Set the path in which to look for php.ini [PREFIX/lib]
–with-config-file-scan-dir=PATH
Set the path where to scan for configuration files
–enable-safe-mode Enable safe mode by default
–with-exec-dir[=DIR] Only allow executables in DIR under safe-mode
[/usr/local/php/bin]
–enable-sigchild Enable PHP”’s own SIGCHLD handler
–enable-magic-quotes Enable magic quotes by default.
–enable-libgcc Enable explicitly linking against libgcc
–disable-short-tags Disable the short-form <? start tag by default
–enable-dmalloc Enable dmalloc
–disable-ipv6 Disable IPv6 support
–enable-fd-setsize Set size of descriptor sets

Extensions:

–with-EXTENSION=[shared[,PATH]]

NOTE: Not all extensions can be build as ”’shared”’.

Example: –with-foobar=shared,/usr/local/foobar/

o Builds the foobar extension as shared extension.
o foobar package install prefix is /usr/local/foobar/

–disable-all Disable all extensions which are enabled by default

–with-regex=TYPE regex library type: system, php. [TYPE=php]
WARNING: Do NOT use unless you know what you are doing!
–disable-libxml Disable LIBXML support
–with-libxml-dir[=DIR] LIBXML: libxml2 install prefix
–with-openssl[=DIR] Include OpenSSL support (requires OpenSSL >= 0.9.6)
–with-kerberos[=DIR] OPENSSL: Include Kerberos support
–with-pcre-regex=DIR Include Perl Compatible Regular Expressions support.
DIR is the PCRE install prefix [BUNDLED]
–without-sqlite3[=DIR] Do not include SQLite3 support. DIR is the prefix to
SQLite3 installation directory.
–with-zlib[=DIR] Include ZLIB support (requires zlib >= 1.0.9)
–with-zlib-dir=<DIR> Define the location of zlib install directory
–enable-bcmath Enable bc style precision math functions
–with-bz2[=DIR] Include BZip2 support
–enable-calendar Enable support for calendar conversion
–disable-ctype Disable ctype functions
–with-curl[=DIR] Include cURL support
–with-curlwrappers EXPERIMENTAL: Use cURL for url streams
–enable-dba Build DBA with bundled modules. To build shared DBA
extension use –enable-dba=shared
–with-qdbm[=DIR] DBA: QDBM support
–with-gdbm[=DIR] DBA: GDBM support
–with-ndbm[=DIR] DBA: NDBM support
–with-db4[=DIR] DBA: Berkeley DB4 support
–with-db3[=DIR] DBA: Berkeley DB3 support
–with-db2[=DIR] DBA: Berkeley DB2 support
–with-db1[=DIR] DBA: Berkeley DB1 support/emulation
–with-dbm[=DIR] DBA: DBM support
–without-cdb[=DIR] DBA: CDB support (bundled)
–disable-inifile DBA: INI support (bundled)
–disable-flatfile DBA: FlatFile support (bundled)
–disable-dom Disable DOM support
–with-libxml-dir[=DIR] DOM: libxml2 install prefix
–with-enchant[=DIR] Include enchant support.
GNU Aspell version 1.1.3 or higher required.
–enable-exif Enable EXIF (metadata from images) support
–disable-fileinfo Disable fileinfo support
–disable-filter Disable input filter support
–with-pcre-dir FILTER: pcre install prefix
–enable-ftp Enable FTP support
–with-openssl-dir[=DIR] FTP: openssl install prefix
–with-gd[=DIR] Include GD support. DIR is the GD library base
install directory [BUNDLED]
–with-jpeg-dir[=DIR] GD: Set the path to libjpeg install prefix
–with-png-dir[=DIR] GD: Set the path to libpng install prefix
–with-zlib-dir[=DIR] GD: Set the path to libz install prefix
–with-xpm-dir[=DIR] GD: Set the path to libXpm install prefix
–with-freetype-dir[=DIR] GD: Set the path to FreeType 2 install prefix
–with-t1lib[=DIR] GD: Include T1lib support. T1lib version >= 5.0.0 required
–enable-gd-native-ttf GD: Enable TrueType string function
–enable-gd-jis-conv GD: Enable JIS-mapped Japanese font support
–with-gettext[=DIR] Include GNU gettext support
–with-gmp[=DIR] Include GNU MP support
–with-mhash[=DIR] Include mhash support
–disable-hash Disable hash support
–without-iconv[=DIR] Exclude iconv support
–with-imap[=DIR] Include IMAP support. DIR is the c-client install prefix
–with-kerberos[=DIR] IMAP: Include Kerberos support. DIR is the Kerberos install prefix
–with-imap-ssl[=DIR] IMAP: Include SSL support. DIR is the OpenSSL install prefix
–with-interbase[=DIR] Include InterBase support. DIR is the InterBase base
install directory [/usr/interbase]
–enable-intl Enable internationalization support
–with-icu-dir=DIR Specify where ICU libraries and headers can be found
–disable-json Disable JavaScript Object Serialization support
–with-ldap[=DIR] Include LDAP support
–with-ldap-sasl[=DIR] LDAP: Include Cyrus SASL support
–enable-mbstring Enable multibyte string support
–disable-mbregex MBSTRING: Disable multibyte regex support
–disable-mbregex-backtrack
MBSTRING: Disable multibyte regex backtrack check
–with-libmbfl[=DIR] MBSTRING: Use external libmbfl. DIR is the libmbfl base
install directory [BUNDLED]
–with-onig[=DIR] MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix.
If DIR is not set, the bundled oniguruma will be used
–with-mcrypt[=DIR] Include mcrypt support
–with-mssql[=DIR] Include MSSQL-DB support. DIR is the FreeTDS home
directory [/usr/local/freetds]
–with-mysql[=DIR] Include MySQL support. DIR is the MySQL base
directory. If mysqlnd is passed as DIR,
the MySQL native driver will be used [/usr/local]
–with-mysql-sock[=DIR] MySQL/MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer.
If unspecified, the default locations are searched
–with-zlib-dir[=DIR] MySQL: Set the path to libz install prefix
–with-mysqli[=FILE] Include MySQLi support. FILE is the path
to mysql_config. If mysqlnd is passed as FILE,
the MySQL native driver will be used [mysql_config]
–enable-embedded-mysqli MYSQLi: Enable embedded support
Note: Does not work with MySQL native driver!
–with-oci8[=DIR] Include Oracle (OCI8) support. DIR defaults to $ORACLE_HOME.
Use –with-oci8=instantclient,/path/to/instant/client/lib
to use an Oracle Instant Client installation
–with-adabas[=DIR] Include Adabas D support [/usr/local]
–with-sapdb[=DIR] Include SAP DB support [/usr/local]
–with-solid[=DIR] Include Solid support [/usr/local/solid]
–with-ibm-db2[=DIR] Include IBM DB2 support [/home/db2inst1/sqllib]
–with-ODBCRouter[=DIR] Include ODBCRouter.com support [/usr]
–with-empress[=DIR] Include Empress support [$EMPRESSPATH]
(Empress Version >= 8.60 required)
–with-empress-bcs[=DIR]
Include Empress Local Access support [$EMPRESSPATH]
(Empress Version >= 8.60 required)
–with-birdstep[=DIR] Include Birdstep support [/usr/local/birdstep]
–with-custom-odbc[=DIR]
Include user defined ODBC support. DIR is ODBC install base
directory [/usr/local]. Make sure to define CUSTOM_ODBC_LIBS and
have some odbc.h in your include dirs. f.e. you should define
following for Sybase SQL Anywhere 5.5.00 on QNX, prior to
running this configure script:
CPPFLAGS=”-DODBC_QNX -DSQLANY_BUG”
LDFLAGS=-lunix
CUSTOM_ODBC_LIBS=”-ldblib -lodbc”
–with-iodbc[=DIR] Include iODBC support [/usr/local]
–with-esoob[=DIR] Include Easysoft OOB support [/usr/local/easysoft/oob/client]
–with-unixODBC[=DIR] Include unixODBC support [/usr/local]
–with-dbmaker[=DIR] Include DBMaker support
–enable-pcntl Enable pcntl support (CLI/CGI only)
–disable-pdo Disable PHP Data Objects support
–with-pdo-dblib[=DIR] PDO: DBLIB-DB support. DIR is the FreeTDS home directory
–with-pdo-firebird[=DIR] PDO: Firebird support. DIR is the Firebird base
install directory [/opt/firebird]
–with-pdo-mysql[=DIR] PDO: MySQL support. DIR is the MySQL base directoy
If mysqlnd is passed as DIR, the MySQL native
native driver will be used [/usr/local]
–with-zlib-dir[=DIR] PDO_MySQL: Set the path to libz install prefix
–with-pdo-oci[=DIR] PDO: Oracle OCI support. DIR defaults to $ORACLE_HOME.
Use –with-pdo-oci=instantclient,prefix,version
for an Oracle Instant Client SDK.
For Linux with 10.2.0.3 RPMs (for example) use:
–with-pdo-oci=instantclient,/usr,10.2.0.3
–with-pdo-odbc=flavour,dir
PDO: Support for ”’flavour”’ ODBC driver.
include and lib dirs are looked for under ”’dir”’.

”’flavour”’ can be one of: ibm-db2, iODBC, unixODBC, generic
If ”’,dir”’ part is omitted, default for the flavour
you have selected will used. e.g.:

–with-pdo-odbc=unixODBC

will check for unixODBC under /usr/local. You may attempt
to use an otherwise unsupported driver using the “generic”
flavour. The syntax for generic ODBC support is:

–with-pdo-odbc=generic,dir,libname,ldflags,cflags

When build as shared the extension filename is always pdo_odbc.so
–with-pdo-pgsql[=DIR] PDO: PostgreSQL support. DIR is the PostgreSQL base
install directory or the path to pg_config
–without-pdo-sqlite[=DIR]
PDO: sqlite 3 support. DIR is the sqlite base
install directory [BUNDLED]
–with-pgsql[=DIR] Include PostgreSQL support. DIR is the PostgreSQL
base install directory or the path to pg_config
–disable-phar Disable phar support
–disable-posix Disable POSIX-like functions
–with-pspell[=DIR] Include PSPELL support.
GNU Aspell version 0.50.0 or higher required
–with-libedit[=DIR] Include libedit readline replacement (CLI/CGI only)
–with-readline[=DIR] Include readline support (CLI/CGI only)
–with-recode[=DIR] Include recode support
–disable-session Disable session support
–with-mm[=DIR] SESSION: Include mm support for session storage
–enable-shmop Enable shmop support
–disable-simplexml Disable SimpleXML support
–with-libxml-dir=DIR SimpleXML: libxml2 install prefix
–with-snmp[=DIR] Include SNMP support
–with-openssl-dir[=DIR] SNMP: openssl install prefix
–enable-ucd-snmp-hack SNMP: Enable UCD SNMP hack
–enable-soap Enable SOAP support
–with-libxml-dir=DIR SOAP: libxml2 install prefix
–enable-sockets Enable sockets support
–without-sqlite=DIR Do not include sqlite support. DIR is the sqlite base
install directory [BUNDLED]
–enable-sqlite-utf8 SQLite: Enable UTF-8 support for SQLite
–with-sybase-ct[=DIR] Include Sybase-CT support. DIR is the Sybase home
directory [/home/sybase]
–enable-sysvmsg Enable sysvmsg support
–enable-sysvsem Enable System V semaphore support
–enable-sysvshm Enable the System V shared memory support
–with-tidy[=DIR] Include TIDY support
–disable-tokenizer Disable tokenizer support
–enable-wddx Enable WDDX support
–with-libxml-dir=DIR WDDX: libxml2 install prefix
–with-libexpat-dir=DIR WDDX: libexpat dir for XMLRPC-EPI (deprecated)
–disable-xml Disable XML support
–with-libxml-dir=DIR XML: libxml2 install prefix
–with-libexpat-dir=DIR XML: libexpat install prefix (deprecated)
–disable-xmlreader Disable XMLReader support
–with-libxml-dir=DIR XMLReader: libxml2 install prefix
–with-xmlrpc[=DIR] Include XMLRPC-EPI support
–with-libxml-dir=DIR XMLRPC-EPI: libxml2 install prefix
–with-libexpat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)
–with-iconv-dir=DIR XMLRPC-EPI: iconv dir for XMLRPC-EPI
–disable-xmlwriter Disable XMLWriter support
–with-libxml-dir=DIR XMLWriter: libxml2 install prefix
–with-xsl[=DIR] Include XSL support. DIR is the libxslt base
install directory (libxslt >= 1.1.0 required)
–enable-zip Include Zip read/write support
–with-zlib-dir[=DIR] ZIP: Set the path to libz install prefix
–with-pcre-dir ZIP: pcre install prefix
–disable-mysqlnd-compression-support
Enable support for the MySQL compressed protocol in mysqlnd
–with-zlib-dir[=DIR] mysqlnd: Set the path to libz install prefix

PEAR:

–with-pear=DIR Install PEAR in DIR [PREFIX/lib/php]
–without-pear Do not install PEAR

Zend:

–with-zend-vm=TYPE Set virtual machine dispatch method. Type is
one of CALL, SWITCH or GOTO [TYPE=CALL]
–enable-maintainer-zts Enable thread safety – for code maintainers only!!
–disable-inline-optimization
If building zend_execute.lo fails, try this switch
–enable-zend-multibyte Compile with zend multibyte support

TSRM:

–with-tsrm-pth[=pth-config]
Use GNU Pth
–with-tsrm-st Use SGI”’s State Threads
–with-tsrm-pthreads Use POSIX threads (default)

Libtool:

–enable-shared[=PKGS] build shared libraries [default=yes]
–enable-static[=PKGS] build static libraries [default=yes]
–enable-fast-install[=PKGS] optimize for fast installation [default=yes]
–with-gnu-ld assume the C compiler uses GNU ld [default=no]
–disable-libtool-lock avoid locking (might break parallel builds)
–with-pic try to use only PIC/non-PIC objects [default=use both]
–with-tags[=TAGS] include additional configurations [automatic]

–with-gnu-ld assume the C compiler uses GNU ld [default=no]