Efficient autoloaders for PHP
Class autoloading is one of more commonly used features in PHP 5. It simplifies the application development, freeing us from manual dependency management. On the other hand, many projects developed custom class naming standards and autoloaders that were incompatible one with another. Currently more and more programmers notice the benefits that come from accepting a single, widely implemented convention. In this article I’m going to introduce Open Power Autoloader, a collection of universal, fast autoloaders for PHP 5.3 compatible with PSR-0 class naming convention adapted by such projects, as Zend Framework or Symfony 2.
Some spare time
For the last two months, there were no updates on the English version of Zyxist.com. I was very busy with finishing my engineer studies (yup, I’m an engineer now), and once I finished, I decided to do some work around Invenzzia Group, plus take a short break. There is one more reason for the low number of updates. It’s the software – I’m not satisfied with WordPress, and I can’t do everything I want with it. It’s time to find the time to rewrite the website from scratch.
MessageFormatter in PHP 5.3
Multilingual web applications keep interface messages in separate, easy-to-edit files that are loaded during the execution depending on the selected user language. Programmers can choose from several different implementation or write their own one. Unfortunately, while they allow just to translate the messages, they often ignore many cultural and language-specific aspects. Personally, I’m not surprised. Until now, PHP did not have any reliable internationalization mechanism, and implementing a good one from scratch is a significant design challenge. However, everything has changed in PHP 5.3 which introduced the INTL extension which is a port of International Components for Unicode library. In this post, I would like to describe one of the extension classes, MessageFormatter which provides an advanced l10n message formatting.
Tram to Plaszow
Two days ago, in a big chaos and heavy rain, the first passenger tram arrived at new Kraków tram balloon loop Mały Płaszów. The new tram route was finally open, and the next day, the target public transport organization has been introduced. In this post, I’d like to describe the history, construction and opening the new tram route to Płaszów.
Another reparation season finished
Kraków constantly improves its tram communication service. Last year was very calm, as the people had to get some rest after almost three years of massive constant reparations, but in Winter, the workers came back to build a completely new route to Płaszów and reparate two streets. These works are almost finished and we can admire the final effects.
PHP library interoperability
So, you want to make a PHP library? I bet you’ve tried at least once in your life – either for private purposes or releasing it to the public. But have you wondered, how to design it in order to ease other people using it? In PHP, many things can be done in several different ways, but once you decide to use one, some other people could find difficult to integrate it with their application. This post is about PHP library interoperability, or – in other words – how to write the libraries, so that the programmers could use them in their projects without any problems.
Trinity – an MVC experiment
If you look at this blog archive, you should see that I got interested in the MVC issue a couple of months ago. Generally speaking, I discovered that both me, and most of PHP programmers have actually never seen this architectural pattern, because web framework developers tend to call MVC something completely different. Yes, it originates from MVC, but the key concepts are different, and what is more – these derivatives do have their own names. I started wondering then, how a true MVC web application would look like, and what their pros and cons in the web environment are. Of course, I needed a playground to test these concepts and I came into an idea to create a sort of experimental framework that could help me to find the answer. This is how Trinity was born in late May 2010.
On multiple hashing
Hash functions are cryptographic functions that calculate a fixed-size, unique hash for a given string. Their role in computer science is significant: we use them to calculate control sums, in cryptographic protocols and to store users’ passwords. In this post I’d like to focus on the last usage, and to be more precise: focus on the idea of multiple password hashing. If you have ever thought why not improve their security in this way, you are welcome to read it.
Template management in Open Power Template 2.1
Today, I would like to show one of the new features in Open Power Template useful for all the CMS and framework developers. They are so-called ”inflectors” whose task is locating templates on the hard disk. So far, the mechanism has been hard-coded in the public API structure, but now we can change it thanks to new interface. Our implementation can be freely customized, so that it matches our needs.
D language after three years
On 2 January 2007, after years of waiting, the first stable version of a revolutionary programming language called D appeared. It has been designed as the real successor of C. Its designer, Walther Bright, which is the author of the first native C++ compiler, created an epic language that I enjoyed since the first time I found it. In this post, I would like to see, where the language is after three years of existence.