PHP Digest: Simplified Password Hashing, Creation of PHP Framework Using Symfony2 Components, Xdebug Tutorial and Much More

News and releases:

  1. PHP 5.4.9 and PHP 5.3.19 released! – All PHP users are encouraged to upgrade to PHP 5.4.9, or at least 5.3.19.
  2. Introducing MongoClient – Updated versions of most of the officially supported MongoDB drivers with new error checking and reporting defaults. A little more about the changes in the article.
  3. Security releases: symfony 1.4.20, Symfony 2.0.19 and 2.1.4 – All three releases contain a security fix.


  1. PHP the Nice Way – an excellent post, in which the author shares his experience in PHP development, talks about his mistakes and discoveries. The post is full of useful tips and advice.
  2. Supercharging PHP MySQL applications using the best API – at the moment there are three types of PHP interface to work with MySQL: ext / mysql, ext / mysqli and PDO_MySQL. In php.internals the discussion has occurred whether to remove the obsolete ext / mysql from the delivery set by default and transfer it to PECL. The author uncovers the topic in detail, providing a comprehensive comparison of three interfaces mentioned above.
  3. The Era of PHP Testing – according to the author, over the past decade, the PHP community has progressed through a handful of distinct eras: object-oriented programming and design patterns, web application security, frameworks, coding standards and code organization, and at the moment there is the stage that can be called the era of testing and continuous integration.
  4. If it’s not written in PHP it’s irrelePHPant! – the author humorously appeals to PHP community to make their own tools on PHP only.
  5. 3 Strange PHP Facts You May Not Know – if you have been programming in PHP for a long time, this post will be just a reminder of the non-obvious behavior of real numbers in PHP or weak typing “effects”. However, if you are a beginner, these facts may be interesting for you.
  6. PHP Trends – a small application that contains a list of PHP libraries, frameworks, etc. (repositories on GitHub), sorted by popularity. A number of those who added the repository to favorites is used as the popularity index.
  7. Simplified Password Hashing – some time ago, Anthony Ferrara proposed to include a standard interface of hashing into the PHP kernel. The proposal was approved by voting upon with its further implementation and has been already included in the PHP 5.5 version. In his post the author explains the details of new features and answers the most frequently asked questions.
  8. How to call shell programs as functions with PHP – the author was inspired by Python sh and has created something similar for PHP. Using the developed tool one can do the following: $ sh-> ssh (array (‘’, ‘-p’ => 1393)) -> tail (array (“/ var / log / dumb_daemon.log “, ‘n’ => 100)), and it would be tantamount to call: ssh 1393 tail / var / log / dumb_daemon.log-n 100 from the command line.

Training materials:

    1. Migrating to Dependency Injection – an interesting post which describes the process of a codebase migrating that does not use DI to one that does.
    2. Creating own PHP framework using symfony2 components – in Episode 11 we’ll be exploring the powers of wonderfull HttpKernelInterface even further by adding even more listeners to the request. This is generally a very good way to add a new functionality, because it lets you concentrate on the single feature, test this feature, and then integrate in the flow of the request – wherever it fits. Previous episodes: 12345678910.
    3. The Single Responsibility Principle – we continue to consider the SOLID principles. This time we will focus on the letter «S». The author demonstrates the principle violation on the class example that is not only busy with user data processing, but also implements functionality to access the database. Then the author refactors the code, breaking a single class for a few new ones, each with its own responsibilities.
    4. Paradigm Soup by Anthony Ferrara – in this short video, we’ll talk about the differences between Procedural, Object Oriented and Functional programming. We’ll also explore what happens when these paradigms cross over each other.
    5. Encryption by Anthony Ferrara – in this video, we explore the evolution of modern cryptography and some of the basic underlying principles that it uses to keep data secure.
    6. How to act like you care about your work – a full strength version of the talk on how to be a better developer.
    7. Discover what’s coming for Zend\Form in ZF 2.1 – the article is about updates component Zend \ Form in ZF 2.1 (new elements, elements manager, short names, dependencies, and totally updated files downloads).
  1. Questions and thoughts about client-side rendering from a ZF 2 developer – the author discusses rendering on the client side for the first time, comparing the rendering on the server and client, as well as analyzing the difficulties that can arise when rendering the content on the client side. He offers a solution to the identified problems and explains when one can use a client-side rendering and how you can use ZF2 for it.
  2. Debugging and Profiling PHP with Xdebug – a detailed tutorial on using the basic capabilities of Xdebug. NetBeans is used as an IDE for debugging.
  3. Improving Performance in Zend Framework 2 – there is still a small list of tips and tricks to improve the performance of applications on ZF2. The author plans to add the list permanently collecting tips and tricks from different sources.
  4. Creating a Shopping Cart Class Using Object-Oriented Programming in PHP – a detailed tutorial on how to implement a shopping cart in OOP style by Larry Ullman.
  5. Don’t pull your dependencies – in this article, the author explains why in some cases it is necessary to pull the dependencies to Symfony2 and then why one should not do it in other cases.
  6. Living Apart Together: Decoupling Code and Framework – the author writes that in most cases the code of the application is highly dependent on the framework, recommending how to weaken these connections.
  7. Nginx configuration for Symfony2 – points’ placement over NGINX configuration for Symfony2 applications.
  8. PHP.Kryptik.AB. Give me your FTP! – the post talks about a malware that steals passwords from FTP servers and then connecting to them, embeds malicious code into the found PHP scripts. The author describes the infection procedure, the way to disinfect the web site and how to prevent the re-infection.
  9. PHP Validation & Sanitization – the topic is not new, but nevertheless, the author describes common security threats, explains what the validation is. He provides an example of implementation with the standard extension to filter data, mentioning implementation in Symfony 2, Laravel 3, CakePHP 2 and also shares his own module for data filtering.
  10. Getters and Setters – a Magic That Should Know Its Place – the author tells us why it’s not a great idea to use Getters and Setters the usual way, but explains where they are really useful.
  11. StronglyTypedJSON in PHP by __set Magic – previous post continuation about the unusual use of setters.
  12. Building a Query Builder in PHP – a short note how to build a simple Query Builder.
  13. Your first encounter with Phalcon / Part 1, 2 – Phalcon is a very recent framework on the market developed by the group of enthusiastic developers. In contrast to traditional frameworks which are written in PHP – Phalcon is a C extension to PHP interpreter itself. The first part contains description, and overview of abilities, the second one contains a simple blog- application.


  1. TYPO3 CMS 6.0 released – New version of the once popular, but in recent years continuously losing its positions, CMS is released.

Plugins releases for WordPress:

  1. bbPress – the plugin allows you to create a complete forum based on WordPress.
  2. Knews Multilingual Newsletters – the plugin allows you to create high-quality multilingual subscription.
  3. WP Subscriber Form – the plugin adds Subscription Form at the end of your post content.
  4. BackWPup – the plugin allows you to back up the database and files of your WordPress web site
  5. Theme-Check – a simple and easy way to test your theme for all the latest WordPress standards and practices.
  6. WP SlimStat – a powerful real-time web analytics plugin for WordPress.
  7. Force Password Change requires users to change their password on first login.
  8. Batcache uses Memcached to store and serve rendered pages.
  9. Edit Flow gives you custom statuses, a calendar, editorial comments, and more, all to make it much easier for your team to collaborate within WordPress.
  10. No Weak Passwords forbids the use of any password from an included list of the most easily guessable.
  11. Automatic Updater automatically updates WordPress, your themes and plugins! Never have to click the update button again!
  12. BuddyPress Media adds Photos, Music, Videos & Albums to your BuddyPress. Supports mobile devices (iPhone/iPad, etc) and automatic audio/video conversion.

Last, but not least:

  1. An awesome yet simple and pragmatic PHP library that performs an addition of two numbers.


Do you have an awesome business idea? Let’s make it real!

Latest posts

Comments are closed.

Terms of Use


This Web site and all information contained herein are provided as is without warranty of any kind, either express or implied, including but not limited to any implied warranty of merchantability or fitness for a particular purpose. The texts, documents and related illustrations published on this Web site could include technical inaccuracies or typographical mistakes.

Limitation of Liability

Under no circumstances and under no legal theory (including, but not limited to, negligence) shall Zfort Group be liable to you or any other person for any damages, whether direct, indirect, special, incidental, consequential, punitive or otherwise that result from, arise out of, or are in connection with the use of or access to, or the inability to use or access, this site or its contents, even if Zfort Group has been advised of the possibility of such damaged links.


All brands and product names used or mentioned on site are or may be the trademarks of their respective owners.


If we decide to change our Terms of Use, changes will be posted on this page.

Privacy Policy

What Information Do We Collect?

We collect information from you when you fill out a contact us form. If you like to contact us you may be asked to enter your: name, e-mail address or phone number. You may, however, visit our site anonymously.

What Do We Use Your Information For?

Any of the information we collect from you may be used in one of the following ways:

  • To personalize your experience
    (Your information helps us to better respond to your individual needs.)
  • To improve our website
    (We continually strive to improve our website offerings based on the information and feed
    back we receive from you.)
  • To improve customer service
    (Your information helps us to more effectively respond to your customer service requests and
    support needs.)
  • To send periodic emails
    (The email address you provide may be used to send you information, respond to inquiries,
    and/or other requests or questions.)
  • To contact you
    (If you ask to contact you.)

How Do We Protect Your Information?

We implement a variety of security measures to maintain the safety of your personal information when you enter or submit your personal information. Submitted information is stored in a secure password-protected database.

Do We Use Cookies?

Yes. Cookies are small files that a site or its service provider transfers to your computer hard drive through your Web browser (if you allow cookies). This enables the sites or service providers systems to recognize your browser and capture and remember certain information.

We use cookies to compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future.

Do We Disclose any Information to Outside Parties?

We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our website, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses.

Third Party Links

Occasionally, at our discretion, we may include or offer third party products or services on our website. These third party sites have separate and independent privacy policies. We therefore have no responsibility or liability for the content and activities of these linked sites. Nonetheless, we seek to protect the integrity of our site and welcome any feedback about these sites.

California Online Privacy Protection Act Compliance

Because we value your privacy we have taken the necessary precautions to be in compliance with the California Online Privacy Protection Act. We therefore will not distribute your personal information to outside parties without your consent.

Children's Online Privacy Protection Act Compliance

We are in compliance with the requirements of COPPA (Children's Online Privacy Protection Act), we do not collect any information from anyone under 13 years of age. Our website, products and services are all directed to people who are at least 13 years old or older.

Online Privacy Policy Only

This online privacy policy applies only to information collected through our website and not to information collected offline.

Your Consent

By using our site, you consent to our websites privacy policy.

Changes to Our Privacy Policy

If we decide to change our privacy policy, we will post those changes on this page.

This policy was last modified on 15 April 2011

Cookie Policy

Cookies are small files that a website you visit (or its service provider) transfers to your computer hard drive via your web browser in case you allow cookies. That enables the websites or service providers systems to recognize your browser in order to capture and remember certain data, e.g. your settings etc.

Cookies play a significant role, and using the Internet without their help would take much more time and efforts.

At Zfort Group we use cookies for the single purpose – we would like our website visitors feel comfortable while surfing our pages. Therefore we gather and store cookies to compile general information about website traffic and interaction so that we could offer improved website experiences and tools in the future.

The list of cookies that we collect is provided below:

Cookie Name Purpose
Google Analytics _utma

These cookies are used to collect information about how visitors use our site. This information helps us to improve the site. The cookies collect information in an anonymous form.

Click here for an overview of privacy at Google

Type of device showMobile

This cookie type stores information about what site version is used now (mobile/full).

CMS 1d85235cca790dc3f8a91d588f4a7655

Stores information about user status (admin/registered/guest)

AddThis Addthis buttons

We use a few cookies form AddThis, Facebook, Twitter, LinkedIn services, so you had an opportunity to follow our updates or share our content at your social profiles.

Facebook Facebook share, follow buttons
Twitter Twitter share, follow buttons
LinkedIn LinkedIn share button

It is a widely known fact that the majority of web browsers permit a limited control of most cookies through the browser settings, which basically means that most browsers give you an actual ability to manage cookies that fit you best. Being aware of that some people prefer not to allow cookies. It can be done by adjusting rules in certain browsers to run cookies on a site-by-site basis, providing the user with a detailed control over their privacy. Generally users can disallow cookies from all websites except the ones they trust. To learn more about cookies, how to manage or delete them, visit


  • Management and content

    Roman Shekin - Structure

    Denys Kostin - Project Management

    Joel Kepple - Engagement

    Dmitry Pevnev - Marketing

  • Design

    Elena Chekalina - Ideas, Concept, Design

    Sergii Tymoshenko - Design

    Polina Tishchenko - Design

  • Development and testing

    Alexandra Zhmutskaya - Frontend Development

    Maxim Fedets - Frontend Development

    Yury Vasilenko - JavaScript Development

    Oleg Hladchenko - PHP Development

    Sergey Palkin - PHP Development

    Yuri Matuhno - Quality Assurance

    Show Buttons
    Share On Facebook
    Share On Twitter
    Share On Google Plus
    Share On Linkedin
    Hide Buttons