SPL Iterators against the performance

loop

This topic’s stayed in my mind for a while. Inspired by Joshua Thijssen’s presentation from PHP UK about (re)discovering the SPL in PHP, I decided to investigate this more carefully. I have to admit that took me some time to understand how the things work and how to not misunderstood the purposes of each iterator and because of lack of documentation it wasn’t that easy. I did a couple of mistakes and probably I will do more, but as Joshua said in his presentation:

The documentation of SPL is completely useless. What can we do? Blog about it!

So, brave yourself. Here my blogpost comes!

Continue reading

SymfonyCon 2014 – Day #2

10704413_818986304791371_2806292674175600213_o

The second day was a pretty funny for me. This one started when I left my friends and had gone to listen to presentations and they chose to eat breakfast instead. I think this happened just because of hunger – I decided to write to Anne Sophie and make a presentation during lighting talks. Crazy, huh? But, I’ll talk about this later, because a lot happened meanwhile.
Continue reading

Rabbit behind the scenes

rabbit

Queuing in the background – getting started with RabbitMQ message broker

In PHP business logic is usually put right in action’s method or just behind it. Hence, every little piece of delaying and long-running code will be processed with a request. The problem is almost undetectable if a user sends an e-mail but with more complex actions it may take a little bit longer than preferred.
Continue reading

CakePHP with Symfony’s2 router

Zzyzx_road

A couple of months ago I have started my adventure with CakePhp and as every Symfony’s developer I thought that any other framework except Symfony is a piece of crap. Day by day and step by step I began to realize that’s not so bad as it seemed to be in the beginning. Well, the second version of CakePhp still has a lot old-fashioned patterns, singletons or lack of tests, but I can live with that. I saw a lot of better or worse frameworks in my life. However, one module remains a bitter aftertaste – the router.
Continue reading

Query manipulation with open-close principle

solid

Just a week ago I sat down in front of my computer and decided to try to create a common solution for injecting easy pagination. It’s an ordinary problem and I wouldn’t waste my time for doing it every time when I need to display more than 10 or 50 elements on the screen. So, as usually I started with installing Symfony2 and KnpPaginatorBundle, but after a couple of minutes I realized that the implementation can be more general than I assumed at the beginning. I could use the same design also for filtering or manipulating queries… Continue reading

Tremendously fast Magento

varnishMagento is one of the most popular PHP free e-commerce engines available on the market. It’s designed to handle and manage almost all of the common issues and features purposed for online shops, and just because of that the Magento became a really huge, heavy and slow tool.

Of course, its authors decided to create a custom cache system inside the framework, but it’s not as fast as it supposed to be. In our last project, an online shop viners.co.uk (developed in cooperation with chilid) the application could only handle several requests per second at the beginning, which is not a satisfying result when you know more details about expected website traffic- a few hundred users at once.

Based on our previous experience we decided to use Varnish as a main cashing system. We chose it because the lion’s share of the website consists of a static content, well… almost everything except for user’s basket, checkout, accounts and products availability.

Continue reading