PHP ClassesPHP Core Developers versus Facebook: Round 3 - The PHP Specification (25.7.2014, 08:43 UTC)
By Manuel Lemos
Recently Facebook developers played on another episode of a saga that seems to antagonize Facebook and PHP Core developers.

This time they announced an initiative to create a formal specification document for the PHP language.

Read this article to learn more about this and previous episodes of this saga, and what this may mean for the PHP future.
Bruno ŠkvorcGetting Started with ImpressPages (24.7.2014, 16:00 UTC)

Content management systems (CMSs) are among the most used web tools nowadays. Users range from designers and developers, to bloggers and project managers. However, even with a wide range of products on the market, users often neglect to try out new systems and experience new possibilities.

To broaden my horizons, I decided to explore the market and see what other CMSs have to offer. This time I am going to look into ImpressPages, a PHP based CMS built on an MVC engine.

What makes ImpressPages differ from other CMSs is code structure, customizability, the admin panel built on Bootstrap and an inline drag and drop editor. In this step-by-step tutorial, I am going to cover the very first steps of launching a website on ImpressPages.

Downloading and Installing ImpressPages

Download ImpressPages first. It’s important to check if your system meets all the requirements for running the CMS:

  • Apache server with “mod_rewrite” (adapt to Nginx as needed)
  • PHP 5.3.3 or newer;
  • PHP GD library;
  • PHP mbstring library;
  • PHP curl library;
  • PHP PDO library;
  • MySQL 5 and higher;
  • 30+ MB free disk space;
  • ini_set function enabled.

After you create a database in MySQL which ImpressPages will use, unzip the contents of its archive into your web server’s root, or wherever you mean to serve it from, and run it (either via localhost, or through the virtual host you’ve set up, depending on your configuration). The installation process has been recently updated and now takes only two steps instead of six.


After configuring your site information (website name, email and time zone), you will be automatically transferred to database installation. If your system doesn’t meet all the requirements, an error will be shown with information on what needs to be fixed.


Once the installation is complete, you will be transferred straight to your new website. You’ll be be able to change the administrator’s credentials there.

Continue reading %Getting Started with ImpressPages%

Simon HolywellFunctional Programming on Three Devs and a Maybe (24.7.2014, 13:11 UTC)
PHP: Hypertext PreprocessorPHP 5.5.15 is released (24.7.2014, 00:00 UTC)
The PHP Development Team announces the immediate availability of PHP 5.5.15. This release fixes several bugs against PHP 5.5.14. All PHP users are encouraged to upgrade to this new version.For source downloads of PHP 5.5.15, please visit our downloads page. Windows binaries can be found on The list of changes is recorded in the ChangeLog.
PHP: Hypertext PreprocessorPHP 5.4.31 Released (24.7.2014, 00:00 UTC)
The PHP development team announces the immediate availability of PHP 5.4.31. Over 10 bugs were fixed in this release. All PHP 5.4 users are encouraged to upgrade to this version. For source downloads of PHP 5.4.31 please visit our downloads page, Windows binaries can be found on The list of changes is recorded in the ChangeLog.
Stefan KoopmanschapStop Fighting (23.7.2014, 21:15 UTC)

I posted this on Facebook about an hour ago, but this is not limited to Facebook. It should not be. So I’m reposting it here.

Today was a day like any other, except that it wasn’t. It was an official day of mourning in The Netherlands. This morning as I woke up, it was still a day like any other. When I got into my car to drive to work was the first time I noticed a difference: Other music, special requests. As I got to work, nothing was different and actually work was no different. A full day of work, a meeting that lasted until just after 4 o’clock so I completely missed the minute of silence. A day like no other day. Since I went home a bit early on monday and I wanted to finish a couple of tasks that I had left, I stayed a bit longer. That “bit” became quite a bit longer as I ran into a colleague and talked a bit.

I started my way back home in the car. Turned on the radio. Again, the radio felt “odd” yet also comforting because of the special programme. Aside from some tweets and pictures, I had not seen anything of the return of the first victims, I’d not followed it yet. While on the highway, I heard the report of the motorcade of hearses travelling from the airport to the army base where they will try to identify the bodies. Bit by bit, the music, the reports, the tweets, it kicked in.

As I neared the exit of the highway that I need to take to go home, I heard where the motorcade was. A quick calculation later I realized that if I’d stay on the highway, I could reach the route they’d be taking easily. I wasn’t sure. Should I? Isn’t that just sensationalism. I decided it wasn’t. I just wanted to pay my respect, especially since I wasn’t able to join the minute of silence.

I am so glad I did decide to go on. It was a surreal experience. First of all, as I turned onto the highway the motorcade was going to use a bit later, there were thousands and thousands of people standing on the side of the road. Even in the opposite direction, cars were stopping on the side of the road. So many people. Police was trying to ensure safety of people, but they weren’t enforcing the law. Obviously it’s usually not allowed to stop by the side of the road like this. Much respect to the police for the way they handled everything, giving only focus to safety and nothing else.

The motorcade came. That was odd. Strange. Impressive. Fourty hearses, one after the other, several of the drivers with tears in their eyes. I could do nothing but stand there and watch. Silent. Tears in my eyes.

I usually have very little faith in humanity. We’re destroying our world, we’re destroying eachother. What happened is proof of that. But what I felt today, while standing there, the enormous amount of people all there to pay respect, to welcome the dead bodies home, the love, respect and sadness mixed together, shared with everyone there. What a crazy experience. It restored a bit of my faith in humanity. It is possible to have this, unfortunately it will never last long.

I had tears in my eyes for the whole trip home. And as I write this, the tears are again forming. Never, ever in my life will I forget this. But never ever in my life do I ever want to see this many hearses drive by. Ever. Can we please, please all stop fighting eachother?

Zeev SuraskiPHPNG binaries for Debian/Ubuntu (23.7.2014, 19:51 UTC)
Want to take PHPNG for a spin but don't have the time or inclination to build it?

You're in luck!  That is, at least if you're running Ubuntu 14.04 or Debian testing/unstable for now.

We published builds of the latest PHPNG-enabled codebase (as of July 18th) in packages that are compatible and can replace the Debian/Ubuntu versions of PHP.

To install:

# wget -O- 2> /dev/null | apt-key add -
# echo "deb zend" > /etc/apt/sources.list.d/phpng.list
# apt-get update
# apt-get install php5

All the package names are the same ones as Debian's / Ubuntu's (e.g. php5-cli, libapache2-mod-php5, php5-fpm).

We'll be updating these packages periodically - e.g. when new extensions are ported or other major changes happen.

Note:  This version presently identifies itself as PHP 5.7.0.  Don't get too attached to this version number - as PHPNG will definitely not come out under this version if we ever it.  If accepted, PHPNG will become the basis of the the next major version of PHP.

We're going to look into providing .rpm versions as well as Windows & Mac binaries in the next few weeks. 
Thanks to Lior Kaplan (@KaplanZend) for making this happen.



Christian WeiskeEnable .phar handling in your web server (23.7.2014, 19:10 UTC)

PHP allows us to pack up whole applications in a single .phar file, but no web server software today lets PHP handle .phar files, giving you a download dialog or displaying the text contents of the file.

mod_php on Apache


Open /etc/apache2/mods-enabled/php5.conf and change the line


Corresponding bug report and patch: #639268


Edit /etc/httpd/conf.d/php.conf and add the line

AddHandler php5-script .phar

Corresponding bug report: #1117140

Mac OS X

Open /etc/apache2/others/php5.conf and add the line

AddType application/x-httpd-php .phar

below the similar line ending with .php.



Use the following configuration to make PHP-FPM handle .php and .phar files:

location ~ \.(php|phar)(/.*)?$ {
    fastcgi_split_path_info ^(.+\.(?:php|phar))(/.+)$;
    set $path_info $fastcgi_path_info;
    fastcgi_param PATH_INFO $path_info;

Be aware of PHP bug #67587. You will get an endless redirection loop for all requests with a non-empty PATH_INFO (file.phar/foo). The fix is already committed and will released with PHP 5.6.0, 5.5.15 and 5.4.31.

Bruno ŠkvorcBest Practices REST API from Scratch – Implementation (23.7.2014, 16:00 UTC)

We ended the first part of this tutorial with all the basic layers of our API in place. We have our server setup, authentication system, JSON input/output, error management and a couple of dummy routes. But, most importantly, we wrote the README file that defines resources and actions. Now it’s time to deal with these resources.

Creating and updating contacts

We have no data right now, so we can start with contact creation. Current REST best practices suggest that create and update operations should return a resource representation. Since the core of this article is the API, the code that deals with the database is very basic and could be done better. In a real world application you probably would use a more robust ORM/Model and validation library.

Continue reading %Best Practices REST API from Scratch – Implementation%

Christian WeiskeExternal auth patches for ownCloud 7 (23.7.2014, 05:42 UTC)

I have an ownCloud installation on my server for several reasons:

  • ownCloud has desktop client applications that sync files automatically onto the server and back between multiple clients (like dropbox).
  • It provides a caldav server for calendar sharing.
  • You may share files with single or groups of people.
  • Web gallery for uploaded image files.

External user authentication

The ownCloud apps repository contains user_external which allows one to authenticate against a FTP, IMAP or SMB server. Since I run my own mail server, authentication against IMAP is my preferred choice to keep my passwords list short.

Unfortunately, users authenticated via IMAP could not login with the desktop client, and could also not get files shared - issues #301 and #302.

A patch

Since this was an unbearable situation, I wrote a patch that creates the users in the database during login. I got an immediate rejection

Determined to solve the problem once for all, I followed the hints and rewrote a large part of the external authentication plugin.

While Thomas Müller, one of the main developers, tested my patch he stumbled across another issue: A blank page without any error notice. Another patch was needed.

One and a half months later, both patches got merged in git master. With ownCloud 7 you'll be able to enjoy them, too.

LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP