News Feed
Sections




News Archive
feed this:

Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

NetTuts.com:
Building Advanced Email Features With IMAP and PHP
October 21, 2014 @ 12:19:47

On the NetTuts.com site they've posted a tutorial showing you how to build advanced features with IMAP and PHP. He bases it on the SimplifyEmail project and incldues examples of three different features to get you started.

Analysis of my own email showed I was receiving email from more than 230 automated senders, far fewer actual people. I was tired of constructing filters in Gmail and filling in a myriad of unsubscribe forms. I wanted to have more control over managing my email and simplifying my life. Finally, this past year, I decided to build the features I needed. The result is Simplify Email (SE), a small web app you can host yourself which offers a variety of cool new email features all of which you can check out on the project website. The coolest thing about SE is that it's a platform for reading, analyzing, routing and managing your email - the possibilities abound. Simplify Email is essentially a programmable playground for "hacking" your own email.

His three examples show you how to:

  • Checking your inbox and filter messages
  • Implement a Whitelist challenge to unknown senders
  • Reporting unanswered email

Each of these comes with plenty of code examples, screenshots and output examples (as well as some places where you might need to change some SE configuration values).

0 comments voice your opinion now!
advanced email imap tutorial feature simpleemail filter whitelist reporting

Link: http://code.tutsplus.com/tutorials/building-advanced-email-features-with-imap-and-php--cms-22059

NetTuts.com:
Laravel, BDD And You Let's Get Started
October 10, 2014 @ 12:53:57

On NetTuts.com they've kicked off a new series of tutorials teaching you about Laravel development but using the principles and testing of behavior-driven development (BDD). In this first part of the series they get you started with the basic environment and a few simple tests.

Welcome to this series about developing Laravel applications using a behavior-driven development (BDD) approach. Full stack BDD can seem complicated and intimidating. There are just as many ways of doing it as there are developers. In this series, I will walk you through my approach of using Behat and PhpSpec to design a Laravel application from scratch. There are many resources on BDD in general, but Laravel specific material is hard to find. Therefore, in this series, we will focus more on the Laravel related aspects and less on the general stuff that you can read about many other places.

He talks about what it means to "describe behavior" versus other kinds of testing and introduces the sample application they'll be creating to show these principles: a time tracker. Following this, they help you install the needed tools (via Composer) and initialize the directory to be ready for the Behat/Phpspec tests you'll create. An example of a basic Feature is included, testing the initial Laravel "Welcome" page it defaults to and how to execute it. Finally, following the ideals of BDD, they show how to implement the "Given I am logged in" step first in the test then in the Laravel application.

0 comments voice your opinion now!
laravel bdd introduction series install configure feature loggedin

Link: http://code.tutsplus.com/tutorials/laravel-bdd-and-you-lets-get-started--cms-22155

Dave Marshall:
Mockery Spies
October 09, 2014 @ 10:29:08

In his latest post Dave Marshall takes a look at a handy feature of the Mockery mocking tool (helpful for unit testing) and how to use them in your testing.

Spies have been on the cards for mockery for a long time and even after putting together an implementation in February, I kind of stalled out on making a decision on the public API. Fast forward a few months and I figured it was just time to ship it, so I went with the most mockery like API and merged it in. Mockery still doesn't have a 1.0 release, so I can always make changes before we go 1.0.

For those not familiar with the concept of "spies" in testing he includes a brief definition and some of the reasoning behind using them. The first is relatively simple: how they can reveal the intent of the test. They also allow for two other types of testing methods, "Arrange-Act-Assert" or "Given-When-Then" thinking patterns. He does mention, however, some of the problems with using spies over mocks (including that they're less precise, possibly leading to looser testing). He finishes up the post with a quick note about partial spies and how they can provide a nice compromise in your testing.

0 comments voice your opinion now!
mockery unittest spies doubles mock compare feature

Link: http://davedevelopment.co.uk/2014/10/09/mockery-spies.html

NetTuts.com:
PHP 5.6 What's New
October 02, 2014 @ 10:58:59

On the NetTuts.com site there's a new article posted talking about some of the new stuff that comes bundled in PHP 5.6 (the first stable version of which was released at the end of August 2014).

It's been a long time coming, but we finally have a new version of PHP. With it comes a some nice, new features, improvements to existing features, as well as features that have been removed or marked as deprecated. Let's dive in and take a look at everything that's offered by the latest version.

There's several items on the list, broken up into various sections, each with brief explanations:

  • Backward Incompatible Changes (ex: json_decode, mcrypt)
  • New Features (including constant scalar expressions, argument unpacking, phpdbg)
  • Deprecated Features (call to static from non-static context, removal of HTTP_RAW_POST_DATA)

They also link to the list of all of the changed and new functions updated in the PHP 5.6.0 release and moving forward.

0 comments voice your opinion now!
php56 new feature deprecated backwards incompatible break

Link: http://code.tutsplus.com/articles/php-56-whats-new--cms-22101

Mathias Verraes:
Resolving Feature Envy in the Domain
August 12, 2014 @ 11:55:24

Mathias Verraes has a new post today about something he calls "feature envy" in the domain, related to this code smell (based on a definition from Martin Fowler).

Benjamin Eberlei did a really nice job of explaining refactoring the Feature Envy code smell on his blog. I wrote a comment because I felt the example could be taken one step further. You should read the original post. Below are Benjamin's code examples (for reference), followed by a repost of my comment.

The "smell" is defined as "a method that seems more interested in a class other than the one it's in". Mathias includes the code examples from the other post showing a datetime calculation and how it could be abstracted out to another class and method. He talks about the migration and how it relates to the "Whole Value" pattern and integrating some of the logic into a factory, generating a "reporting period" instance. He finishes the post with a brief look at an application of domain-driven design concepts to the problem, suggesting that the reporting be even more abstracted from the datetime data and using the "reporting period" object instead.

0 comments voice your opinion now!
feature envy whole value designpattern class object abstraction domaindriven

Link: http://verraes.net/2014/08/resolving-feature-envy-in-the-domain/

SitePoint PHP Blog:
New Features in PHP 5.6
January 14, 2014 @ 12:56:39

On the SitePoint PHP blog Bruno Skvorc has posted a guide to what's new in PHP 5.6, the upcoming release of the language.

It's been a while since the release of PHP 5.4, and new versions have been coming out faster and faster ever since. When 5.5 hit and introduced some unexpectedly great features, the PHP community breathed a sigh of relief and regained hope of a more dedicated, structured and smart core development. Whether or not we'll actually get this remains to be seen, but the future does indeed look promising, especially if one looks at the PHP 5.6 changes made so far.

He goes through the list of things (so far) that will be in the upcoming release:

  • MIME types in the CLI web server
  • Internal Operator Overloading
  • Uploads of over 2GB are now accepted
  • POST data memory usage decreased
  • Improved syntax for variadic functions
  • Constant Scalar Expressions
  • PHPDBG bundled by default
  • Zip improved
  • Importing namespaced functions

Each item on the list comes with either some sample code to show its use or a brief explanation of the features it adds or updates.

0 comments voice your opinion now!
new feature upcoming language release php56

Link: http://www.sitepoint.com/new-features-php-5-6

PHPClasses.org:
Lately in PHP podcast episode 42 - New PHP 5.6 Developments
December 17, 2013 @ 12:02:40

The PHPClasses.org site has released the latest episode of their "Lately in PHP" podcast series with episode #42, "New PHP 5.6 Developments".

s the release of PHP 5.6 gets closer to happen in first semester of 2014, more new features are already being implemented including a new PHP debugger. The latest PHP 5.6 developments is one of the main topics discussed by Manuel Lemos and César Rodas in the episode 42 of the Lately in PHP podcast.

They go through some of the things that have been discussed to be included in PHP 5.6 including

  • the Expectations proposal
  • ** as Power Operator
  • Assigning Variables Automatically in the Class Constructor
  • PHPDbg, a New PHP Debugger

You can listen to this latest episode a few different ways - either through the in-page player, by grabbing the mp3 or you can watch the video of the live recording.

0 comments voice your opinion now!
latelyinphp podcast series php56 upcoming feature

Link: http://www.phpclasses.org/blog/post/222-New-PHP-56-Developments--Lately-in-PHP-podcast-episode-42.html

Benjamin Eberlei:
Feature Flags and Doctrine Entities
December 06, 2013 @ 09:40:00

In a new post to his site Benjamin Eberlei takes a look at the idea of "feature flags" (settings to turn on and off major features) and how they can be used with Doctrine entities to handle sync issues between new properties and the database schema.

The problem of feature flags with Doctrine is easily explained: If you add properties for a new feature that is disabled in the Doctrine metadata, then you need to upgrade the database before deployment, even when the feature is not being rolled out for some days/weeks. Doctrine requires the database to look exactly like the metadata specifies it.

His solution was to use the "loadClassMetadata" event in the entity to dynamically append these new properties based on simple "if" checks of feature flags in the configuration object. Obviously using this is a bit of a hack until the new properties are in place, but once they are then the only change is removing this code.

0 comments voice your opinion now!
feature flag doctrine entities class metadata if check

Link: http://www.whitewashing.de/2013/12/05/feature_flags_and_doctrine_entities.html

PHPClasses.org:
Lately in PHP podcast episode 40 - More New Features for PHP 5.6
October 15, 2013 @ 09:28:20

On PHPClasses.org today they've posted the latest episode of their podcast, "Lately in PHP", episode #40 - "More New Features for PHP 5.6".

The proposals of new features for PHP 5.6 continues to come. Several new interesting features are being discussed like named parameters, anonymous classes, nested classes, among other proposals. This was the main topic discussed by Manuel Lemos and Ernani Joppert in episode 40 of the Lately in PHP podcast.

You can listen to this latest episode in a few different ways - either by using the in-page player, by downloading the mp3 or by watching the video of the recorded Google Hangout.

0 comments voice your opinion now!
latelyinphp podcast phpclasses feature upcoming language

Link: http://www.phpclasses.org/blog/post/218-More-New-Features-for-PHP-56--Lately-in-PHP-podcast-episode-40.html

HHVM.com:
Wow HHVM is fast...too bad it doesn't run my code
September 16, 2013 @ 10:54:01

On the HHVM.com blog, there's a post talking about the speed of the HipHop VM (from Facebook) but how it still doesn't support everything built into PHP (and the work being done to bring it up to parity).

HHVM is a highly performant PHP runtime. In fact, it is nearly 40% faster than HPHPc, and only getting faster. [...] Performance is critical, but it isn't everything. In order to gain broader adoption for HHVM, being able to run popular frameworks is a must; in other words, we can have the highest performing PHP runtime, but if doesn't run real-world code without a lot of pain, then it won't be used widely. Understanding this, we are putting serious resources around parity with the PHP runtime.

The post includes a table of features that have been ported and ones currently in the works, based on unit test coverage. They've based it on various well known PHP projects including PHPUnit, Symfony, Laravel, the Facebook SDK and many others. Their initial goal is to allow these frameworks to work 100% of the time inside the HHVM, but to continue the work from there, implementing other PHP features. If you'd like to help out with the process, they also welcome contributions.

0 comments voice your opinion now!
hhvm hiphip virtualmachine speed feature parity framework unittest

Link: http://www.hhvm.com/blog/?p=875


Community Events





Don't see your event here?
Let us know!


deployment framework community library api bugfix language list symfony introduction package release series laravel install podcast tips interview voicesoftheelephpant opinion

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework