<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8944924111709383318</id><updated>2026-02-11T05:35:03.477-08:00</updated><title type='text'>just another blog about software engineering</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-6648916917712576945</id><published>2012-08-20T13:00:00.000-07:00</published><updated>2012-08-22T01:31:10.205-07:00</updated><title type='text'>Announcing the CyclonePHP project</title><summary type="text">In this blog post I&#39;m announcing the CyclonePHP project for the PHP developer community.

In short, CyclonePHP is (will be) an application development framework for PHP 5.3 consisting of some loosely coupled libraries. The aim of the project is to provide a reliable RAD solution for web developers willing to create medium-sized business applications with fairly long maintenance interval. </summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/6648916917712576945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2012/08/announcing-cyclonephp-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/6648916917712576945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/6648916917712576945'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2012/08/announcing-cyclonephp-project.html' title='Announcing the CyclonePHP project'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-1474911109960189589</id><published>2011-09-02T09:15:00.000-07:00</published><updated>2011-09-02T09:31:01.724-07:00</updated><title type='text'>strip_tags() is not enough</title><summary type="text">All web developers know that any kind of text which comes from user input, should be sanitized before rendering. You must remove all dangerous HTML tags to avoid HTML and Javascript injections, XSS attacks - good old well-known issues, I&#39;m not going to bore you with their concept. When you sanitize the input, in most of the cases you don&#39;t want to remove all HTML tags, you want to give your user </summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/1474911109960189589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2011/09/striptags-is-not-enough.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/1474911109960189589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/1474911109960189589'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2011/09/striptags-is-not-enough.html' title='strip_tags() is not enough'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-5619482126321826362</id><published>2011-07-11T05:07:00.000-07:00</published><updated>2011-07-11T06:18:27.678-07:00</updated><title type='text'>Getters, setters, performance</title><summary type="text">The usage of getter and setter methods instead of public attributes became very popular in the PHP community, and it&#39;s going to become the standard coding convention of so many PHP libraries and frameworks. On the other hand many developers - including me too - strongly unrecommend such convention, because of its performance overhead. I wanted to make some performance comparison for years, and </summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/5619482126321826362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2011/07/getters-setters-performance.html#comment-form' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/5619482126321826362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/5619482126321826362'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2011/07/getters-setters-performance.html' title='Getters, setters, performance'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-652303709518124800</id><published>2011-05-27T15:05:00.000-07:00</published><updated>2011-05-27T15:05:22.746-07:00</updated><title type='text'>Using __invoke() in PHP 5.3</title><summary type="text">In PHP 5.3 one of the new magic methods was __invoke(). PHP 5.3.0 is not really a new stuff but I have seen nobody using __invoke() yet. In this post I will try to find some use cases when it can be useful.



So first of all let&#39;s overview how this method works: if you have an object thats class implements the __invoke() method, then the object it becomes a callable. Example:


class MyClass {
</summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/652303709518124800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2011/05/using-invoke-in-php-53.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/652303709518124800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/652303709518124800'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2011/05/using-invoke-in-php-53.html' title='Using __invoke() in PHP 5.3'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-7011192377007860969</id><published>2011-05-17T04:28:00.000-07:00</published><updated>2011-05-17T04:28:44.563-07:00</updated><title type='text'>Book review: Dive into HTML5</title><summary type="text">Inspired by the review published by Gábor Török I bought the book Dive Into HTML5 by Mark Pilgrim. I finished reading it yesterday, and in short I&#39;m a bit disappointed. 

First of all I should mention that I&#39;m not the primarily targeted reader of the book since I&#39;m mainly a PHP developer and I&#39;m not really a HTML guy. Since HTML5 is not only HTML but also CSS and JS I was interested in the new </summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/7011192377007860969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2011/05/book-review-dive-into-html5.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/7011192377007860969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/7011192377007860969'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2011/05/book-review-dive-into-html5.html' title='Book review: Dive into HTML5'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-4212663329964344221</id><published>2011-01-24T12:16:00.000-08:00</published><updated>2011-01-24T12:25:12.496-08:00</updated><title type='text'>Creating an interactive debugger for PHP</title><summary type="text">Last night I created a prototype for an interactive debugger for PHP without the need of any IDE-plugin. In this post I&#39;m going to show what I found. Unfortunately you will need some time to put the environment together, but I think it&#39;s worth doing it.

My target was to create a way how you can view and modify your variables manually at runtime, only by inserting one line code. So let&#39;s overview</summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/4212663329964344221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2011/01/creating-interactive-debugger-for-php.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/4212663329964344221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/4212663329964344221'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2011/01/creating-interactive-debugger-for-php.html' title='Creating an interactive debugger for PHP'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-898222797962759992</id><published>2011-01-02T10:42:00.000-08:00</published><updated>2011-01-02T12:22:45.663-08:00</updated><title type='text'>Request execution in Kohana 3.1</title><summary type="text">Yesterday Kohana 3.1 RC1 has been announced and tagged. I think now it&#39;s time to get familiar it. In this post I&#39;m going to examine the refactored request execution workflow.



Let&#39;s start with the bootstrap mechanism. The procedural bootstrap code is in the index.php and application/bootstrap.php since Kohana 3.0. In KO3.1 I can only see a very little difference:  the main request execution is </summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/898222797962759992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2011/01/request-execution-in-kohana-31.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/898222797962759992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/898222797962759992'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2011/01/request-execution-in-kohana-31.html' title='Request execution in Kohana 3.1'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-4918352725706628367</id><published>2010-12-20T05:12:00.000-08:00</published><updated>2010-12-20T05:13:36.606-08:00</updated><title type='text'>Life without static in PHP</title><summary type="text">The problem with static members in PHP is the poor initialisation capabilities. The initial value of a static property can only be a literal or a named constant:
class MyClass {

   static $prop1 = &#39;hello&#39;; //correct

   static $prop2 = PHP_VERSION; //correct

   static $prop3 = 1 + 2; //incorrect

   static $prop4 = my_func(); //incorrect

   static $prop5 = new AnotherClass(); //incorrect

}


</summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/4918352725706628367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2010/12/life-without-static-in-php.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/4918352725706628367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/4918352725706628367'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2010/12/life-without-static-in-php.html' title='Life without static in PHP'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-2965721258189572552</id><published>2010-11-30T15:00:00.000-08:00</published><updated>2010-11-30T15:05:57.509-08:00</updated><title type='text'>Using inheritance</title><summary type="text">Using inheritance for coupling classes is very often used by php developers. At the first glance it seems to be great choice. Subclasses can refer to the members of their parent class as if it were defined in the body of the subclass. The protected keyword is explicitly designed for this kind of usage. Abstract classes are fancy and the abstract keyword is also introduced to enforce the usage of </summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/2965721258189572552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2010/11/using-inheritance.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/2965721258189572552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/2965721258189572552'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2010/11/using-inheritance.html' title='Using inheritance'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8944924111709383318.post-2600632050168713563</id><published>2010-10-16T17:34:00.000-07:00</published><updated>2010-10-16T17:34:43.858-07:00</updated><title type='text'>Introduction to Kohana</title><summary type="text">When I started working with php frameworks, I began it with Code Igniter. Not so later I switched to Kohana, and I still actively use it in my everyday work. In the first post of my new blog I want to give a brief summary about the framework. What it is, what makes it unique and how does it basically work.



Kohana is a pretty minimalistic and lightweight framework. It is not (and it does not </summary><link rel='replies' type='application/atom+xml' href='http://erosbence.blogspot.com/feeds/2600632050168713563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://erosbence.blogspot.com/2010/10/introduction-to-kohana.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/2600632050168713563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944924111709383318/posts/default/2600632050168713563'/><link rel='alternate' type='text/html' href='http://erosbence.blogspot.com/2010/10/introduction-to-kohana.html' title='Introduction to Kohana'/><author><name>erosb</name><uri>http://www.blogger.com/profile/08287601607321533837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>