Anthony FerraraA Beginner's Guide To MVC For The Web (21.11.2014, 17:30 UTC)
There are a bunch of guides out there that claim to be a guide to MVC. It's almost like writing your own framework in that it's "one of those things" that everyone does. I realized that I never wrote my "beginners guide to MVC". So I've decided to do exactly that. Here's my "beginners guide to MVC for the web":

Read more »
SitePoint PHPBuilding OctoberCMS Plugins: Google Analytics (21.11.2014, 17:00 UTC)

OctoberCMS is one of the rising stars in content management systems, and as in every CMS we need plugins to extend the functionality. In this article, we’re going to go through the basics of creating a plugin for October CMS.

October LOGO

What we’re building

Almost all websites need Google Analytics. We’re going to make a plugin that inserts the Google Analytics tracking code into the page using a component tag.

After inserting your tracking id in the settings form, you’ll need to insert the component tag on the pages that you want to track, or inside a partial.

{% component 'gaCode' %}

You can see the final result on github and try it out.

Managing Plugins

October has a plugins folder inside the root directory, where you can find, install, remove and develop plugins.

To manage your plugins, you can click the System > updates link. We have two different ways to manage our plugins.

Continue reading %Building OctoberCMS Plugins: Google Analytics%

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.

LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP