thePHP.ccPHP Un-Training on Mallorca (21.11.2014, 07:00 UTC)
Nomad PHPFebruary 2015 – US (21.11.2014, 00:01 UTC)

Dependency Injection, Dependency Inversion, and You

Presented By
Jeff Carouth
February 19, 2015 20:00 CST

The post February 2015 – US appeared first on Nomad PHP.

Nomad PHPFebruary 2015 – EU (21.11.2014, 00:01 UTC)

Laravel Forge: Hello World to Hello Production

Presented By
Joe Ferguson
February 29, 2014 20:00 CET

The post February 2015 – EU appeared first on Nomad PHP.

SitePoint PHPGetting Started with FigDice (20.11.2014, 16:00 UTC)

Amongst the many templating systems out there, most work in pretty much the same way; variables are “injected” using some syntax or another, be it curly braces, percentage signs or whatever that library’s convention happens to be. They’ll usually have basic control structures, such as if...then and, of course, iteration.

FigDice, however, takes an altogether different approach. Inspired by PHPTAL - the subject of a future article - it gives the view layer the reponsibility of “pulling” in the data it requires, rather than relying on controllers to assemble and “push” it into the templates.

In this two-part series, I’m going to take a more detailed look at it, at how it works and how to use it.


You can get the code from the website, Github or, better still, Composer:

"figdice/figdice": "dev-master"

The library is also available as a .phar; you can download the latest version (direct link) or generate it yourself using figdice-make-phar.php, available in the Github repository.

Basic Usage

Let’s first look at FigDice at its most basic - creating and rendering a view.

To begin, create a new instance of the view:

$view = new \figdice\View();

Obviously, you’ll need to ensure the library is available - using Composer provides a suitable autoloader.

Next, you need to load in the appropriate template, relative to the current path:

$view->loadFile( '../templates/home.html' );

To render the template, call render():

$view->render(); // returns the HTML content

With that in mind, let’s start building some templates.

Continue reading %Getting Started with FigDice%

Cal EvansSpecial Episode: Meet Cal Evans (Part 1) (20.11.2014, 14:47 UTC)

Cal sits down with Jeffrey (jam) McGuire

Show notes

PHP ClassesPHP and JavaScript Innovation Award Report November 2014 Edition - August 2014 nominees (20.11.2014, 08:22 UTC)
By Manuel Lemos
This is the November edition of the Innovation Award podcast hangout recorded by Manuel Lemos and Arturs Sosins to comment about the outstanding features of all the past month nominees and winners PHP and JavaScript packages, the prizes that the authors earned, starting with the nominees from the month of August 2014.

Listen to the podcast, or watch the hangout video, or read the transcript to learn why the nominated packages were considered to be innovative.
Piotr PasichHow to meet your estimations with the deadline (20.11.2014, 08:16 UTC)

Estimate a project or a task is a huge issue for all developers. Even if your experience allows you to be pretty sure that your estimations are complete and you shouldn’t exceed them then there always might occur some problems. The thing I struggle with is I always think as a developer. So, in the result, I give the expected time of development and a due date set with this estimation could be confusing or even wrong. Think about the Definition of Done – it’s a complex and long process between the moment when you get the information about the task and the date when it would be deployed on production environment. The development is only one of those steps and good estimations should cover the whole process and give you a space for coffee, xbox, wii and soccer table.

There are a couple techniques and methods to achieve this. Some of them are purposed to a different stage of the project or for preliminary estimations. I can be pretty sure that you know almost every of them and, most likely, used them to estimate some of your project as I did. But, it’s a good idea to have them written down in one place, just to remember.

Analogous Method

This is kind of my favourite of the very beginning of the project or before, when you get a specification, read and have no clue where to start, but you caught an idea, because you did quite similar project in the past. So, let’s compare example two projects from very high level point of view. Project 1 is the project I done, or you, and the Project 2 is our unknown future.

Project 1 Project 2
Business logic complexity Pure Quite Complicated
Amount of CRUDs 5 Probably 10
Amount of webservices 1 7
Amounts of users roles 2 7
Spent hours 700 ?

I can assume you that the specification of Project 2 seemed to be simple on the very beginning, but after a few months of work we realized that every single word matters and changes a lot. We had estimated this by two techniques. First, going through whole specification and writing down all necessary tasks, estimating them one at the time and counting all hours. Second, the Analogous Technique. The difference between results was just tremendous – about 300% (1000h vs 3000h), and the second was more accurate.

Moreover, time spent for working on estimations also differed. As you can see, there is no much things to compare in our table. You do not need to focus a lot on all aspects and risks of the project. Because you compare this to previous work with all problems, missing deadlines and features out of scope included, which cut the time necessary to devote.

As you can see I’ve written down only a couple of points to compare, but I recommend you to add there as much as possible. This will makes you able to see more differences and makes your estimations more accurate.

Expert Judgement

I call it as an estimation by recursion, because you have to ask an expert for help and he will try to estimate your project by one, picked method. One of methods to choose is, of course, the expert judgement.

It’s natural to ask somebody for help, so, do not hesitate to do this. Sometimes going to somebody works like an exercise with a rubber duck debugging. You explain your scope to the colleague and experience glare.

Three Point Estimate

This is one of my favourite. Programmers always have a problem with underestimated tasks, because of surely optimistic point of view. I must admit I’m an optimist too. During your planning sessions or even if you ask somebody there, you could meet a person who will tell – “I can do this in 8 hours”. But you thought that will take about 14 hours. Moreover, your Product Owner is indeed malcontent person and frequently changes his mind, so probably you will work about 20 hours. Your estimation is somewhere between these values, but where?

There are a few formulas which might be used to count the result value of your estimations. Most likely the result of all of them will be approximated, so I’d like to present only the one:

E = (o + 4m + p) / 6

Where the following signs mean:
– o – Optimistic estimation
– m – Most likely estimation
– p – Pessimistic estimation

To be more accurate in our Software Development’s estimations

Truncated by Planet PHP, read more at the original (another 3344 bytes)

Evert Potsabre/dav 2.1 released. (20.11.2014, 05:48 UTC)

6 months after the last major release, we just put sabre/dav 2.1 live.

I'm very excited to announce that we finally have support for CalDAV scheduling (rfc6638), which is a big deal and was hard to implement.

This means that invitations can get processed automatically, delivered to other CalDAV users, and clients that support scheduling will be able to accept or decline invites directly on the server, and ask for free-busy information.

We also now support vCard 4.0 (rfc6350), jCard (rfc7095) and converting between vCard 3, 4, and jCard using content-negotiation.

Thanks all! I hope it's well received :)

The full announcement can be found on the website.

As usual, we also prepared a migration document if you are upgrading from and older version.

SitePoint PHPYii 2.0 ActiveRecord Explained (19.11.2014, 17:00 UTC)

The ActiveRecord class in Yii provides an object oriented interface (aka ORM) for accessing database stored data. Similar structures can be found in most modern frameworks like Laravel, CodeIgniter, Smyfony and Ruby. Today, we’ll go over the implementation in Yii 2.0 and I’ll show you some of the more advanced features of it.

Model class intro

The Yii ActiveRecord is an advanced version of the base yii\base\Modelwhich is the foundation of the Model-View-Controller architecture. I’ll quickly explain the most important functionality that ActiveRecord inherits from the Model class:


The business data is held in attributes. These are publicly available properties of the model instance.
All the attributes can conveniently be assigned massively by assigning any array to the attributes property of a model. This works because the base Component class (the base of almost everything in Yii 2.0) implements the __set() method which in turn calls the setAttributes() method in the Model class. The same goes for retrieving; all attributes can be retrieved by getting the attributes property. Again, built upon the Component class which implements __get() which calls the getAttributes() in the Model class.
Models also supply attribute labels which are used for display purposes which makes using them in forms on pages easier.

Continue reading %Yii 2.0 ActiveRecord Explained%

PHP ClassesPHP 7 Release Date Settled - Lately in PHP podcast episode 53 (18.11.2014, 08:27 UTC)
By Manuel Lemos
Now that the main features of PHP 7 are practically decided, the PHP 7.0 release date is also being settled for late 2015. This was one of the main topics discussed by Manuel Lemos and Arturs Sosins on the episode 53 of the Lately in PHP podcast episode.

They also discussed the proposals to provide better Unicode support in PHP 7, as well the plans to remove deprecated features and the proposal to remove the function keywords from class declarations.

They also commented on a new article about accessing OAuth based APIs without user interaction.

Finally they talked about a new PHP and JavaScript best package recommendation system.

Now listen to the podcast, or watch the hangout video, or read the transcript text to learn more details about these interesting PHP topics.
LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP