SitePoint PHPPHP Summer Camp 2015 Review (3.9.2015, 16:00 UTC)

You’re standing on a long pier, the last ten meters of which curiously belong to international waters despite being well inside the current country’s territory. As you climb the meter-high rock wall that forms a small barrier towards the west, you’re able to witness the sun dipping into the sea, far in the distance. Soft waves caress the rocky surface below your feet, bobbing the sea urchins and fish to and fro. There are other people there, each immersed in their own thoughts.

Rovinj sunset

No, that’s not a Dungeons and Dragons session starting. It’s the end of a great conference of workshops in Rovinj, Croatia, in the same spirit as last year’s.

PHP Summer Camp 2015

PHP Summer Camp is a dual event comprising of two PHP tracks and one eZ Publish track, the workshops of which are collectively called EZ Summer Camp. This year’s event took place slightly earlier than last year’s - from August 26th to 29th.

I attended in an entirely unofficial capacity this year. With zero responsibility on site, it was quite a different experience. This year’s key takeaways from the conference itself are:

  • Doctrine is less complicated than it seems, just awkwardly documented
  • Blackfire is less complicated than it seems, just awkwardly documented
  • More people need to read Ross Tuck’s guide to conference speaking
  • Puli is either the next game changer or the next big flop
  • If you’re only attending conferences you get invited to (and your schedule is not packed with those invites), you’re not a good member of the community
  • Tech people can and do have fun and interesting conversations in bars without getting drunk and awkward, contrary to popular belief.

Continue reading %PHP Summer Camp 2015 Review%

Thijs FerynRunning varnishstat remotely using an API written in Go (3.9.2015, 09:32 UTC)
Varnish is one of my favorite pieces of technology. It’s a reverse caching proxy that makes slow websites go fast. It
PHP ClassesReview: Laravel 5 Essentials (3.9.2015, 01:10 UTC)
Laravel 5 Essentials
Lopo Lencastre de Almeida
PHP books
Martin Bean
This book was a bit of an unexpected surprise. For its seven chapters and just 118 pages I was expecting less than I got. Of course, this is just an introductory book so do not expect it to have it all about Laravel 5.

Neverthless, if you are willing to know more about what modern PHP programming and Laravel is or just want to get a fast update on what's new in its version 5, then you should read "Laravel 5 Essentials".

Laravel is one of the most exciting of the newer PHP frameworks and it will gain market share in the near future. It's already the most starred PHP framework on Github and that says a lot about its popularity, so you should really consider to have it as one of your expertise areas.

This book is, for sure, is a must have and a very good starting point for all PHP newcomers and old Laravel developers.
Anna FilinaCreating Courses and Talks with Mind Maps (2.9.2015, 14:05 UTC)

Many people are intrigued when I say that I am able to cut my course and talk preparation time by roughly 70% using mind maps.

The first instinct is to write slides, but that is wrong. Slides are linear. With the ability to make transitions, add pictures and express ideas in full sentences, they are a distraction to the flow of thoughts.

How Mind Maps Help?

Mind maps remove distractions and enable you to focus on getting ideas out of your head. Your thoughts are not linear and mind maps accommodate that. You can see everything at a glance. You can jump from one topic to the next, make changes, rearrange, etc.

Planning is the most important thing. A good plan means that more than half of the work is done, since you’ll less likely to backtrack. It’s much quicker to make changes to a mind map than to a nearly-completed course or presentations.

Process Suggestion

I start with assertions about the audience. Are they developers? What is their skill level? What do they expect to get from this? Then, I write a conclusion to match those expectations. Yes, straight to the conclusion. I can’t plot a route without the destination.

I fill in the major topics. I sequence them in a way to tell a story that will progressively lead the audience to the conclusion. I read the topics out loud, linking them as I speak. Is the order coherent? Does it sound like an interesting story? I rearrange as needed.

Then I fill in with sub-topics. It’s okay to write more content than necessary. I can delete some later. Oftentimes, this part requires me to do some research about best practices, because they evolve every day. Once this is done, I quickly read everything out loud, because that’s how I spot inconsistencies and missing links. I refine the topics, delete those that add too little value and re-read once more.

At this point, the content is solid and I can write the slides, or whatever support material I need. That part is usually much, much shorter than the mind map planning. I probably spend most of that time finding good stock photos.

Things to Watch Out For

Write your points using as few words as possible. Avoid full sentences. It’s supposed to be a reminder, not a novel. It’s a map of what’s in your mind, not a full brain dump.

If you must write down the many ideas that you don’t want to forget, make sure that they’re in their own branch so that you can collapse that branch. This way, you have the ideas for later, but keep your mind map lean.


Mind maps are a powerful tool that will help you do things faster and increase quality. Try to use mind maps for everything: blog posts, functional requirements, vacation planning, etc. I actually used a mind map to write this post about mind maps.Mind maps

Cal EvansInterview with Anthony Ferrara (1.9.2015, 13:08 UTC) Link
PHP ClassesSentiment Analysis in PHP Part 2: Applying the Solution in Practice (1.9.2015, 07:30 UTC)
By Samuel Adeshina
In the first part of this article we learned about the theory of analyzing a text to determine the sentiments expressed by the user that wrote it.

Read this article to learn to how to implement a sentiment analysis application in practice based on the PHP Sentiment Analyzer class.
Rob Allenrandom_bytes() in PHP 5.6 and 5.5 (1.9.2015, 06:15 UTC)

Last week, I needed some random data and using the power of the PHP manual, came across random_bytes which does exactly what I need. However, it's PHP7 only.

As I target both Linux and Windows, I needed to do a bit more work to get it working which was fine, but a minor nuisance given that I know that there's a better way in PHP7.

Talking on the IRC channel a few days later, Anthony tells us about paragonie/random_compat which is a PHP 5.x polyfill for the PHP7 methods random_bytes() and random_int(). Usage is exactly the same, so when you switch to PHP7, you just remove the library from composer and all your code using these methods will continue to work.

I hadn't heard of it; I'm guessing that you haven't either, so now you know!

SitePoint PHPWriting PHP Git Hooks with Static Review (31.8.2015, 16:00 UTC)

If you’ve been using Git for more than a short length of time, you’ll hopefully have heard of Git hooks. If not, Git hooks, as Andrew Udvare introduced here on SitePoint back in August of last year, are scripts which run, based on certain events in the Git lifecycle, both on the client and on the server.

Hook illustration

There are hooks for pre- and post-commit, pre- and post-update, pre-push, pre-rebase, and so on. The sample hooks are written in Bash, one of the Linux shell languages. But they can be written in almost any language you’re comfortable or proficient with.

As Tim Boronczyk pointed out in September 2013, there are a wide range of meaningful purposes which hooks can be put to. These include linting, spell-checking commit messages, checking patches against accepted coding standards, running composer, and so on.

Now, PHP’s a great language, don’t get me wrong, but it’s not necessarily the best language for shell scripting. Admittedly, it’s gotten a lot better than it once was. But compared to languages such as Bash, Python, and Ruby, it hasn’t been quite as suitable for creating Git hooks; that is, until now.

Thanks to Static Review, by Samuel Parkinson, you can now write Git hooks with native PHP, optionally building on the existing core classes. In today’s post, I’m going to give you a tour of what’s on offer, finishing up by writing a custom class to check for any lingering calls to var_dump().

Installing the Library

Like most, if not all modern PHP libraries and packages, StaticReview is installable via Composer. To install it in your project, run composer require sjparkinson/static-review in the root of your project. With that, let’s get going.

Continue reading %Writing PHP Git Hooks with Static Review%

Stefan KoopmanschapWeCamp Day 5 (31.8.2015, 14:45 UTC)

I still owe you one day, so here it is. This blogpost came a bit late because as day 5 ended we still needed to get the island back into its regular state, get speakers back to the airport etc. Enough excuses… here’s day 5.

The last day of WeCamp 2015 was an exciting day. After 4 days of preparations and hard work, this was the day that Team Enygma would present Project Cypher. A project that we had kept an utter secret aside from the name.

During the morning, I had another round of individual conversations with my team members to see how their short-term goals were working out. It was very good to see that all team members had either reached their goals or at least were very close to reaching their goals. Some also had a clearer view of what to do with their long-term goals thanks to the experience of WeCamp. One person had not actually reached his goal, but instead had gotten something completely different and unexpected out of WeCamp which he still counted as a win.

The preparations for the presentation of the product went well, although it was finished slightly too late (lunch had already started). Still, good enough.

Then it was time for the project presentations. Team Enygma was presenting as the last team, so we could see the other teams present their stuff first. It was awesome to see what people had come up with: Being able to use a Slack Bot to control an Arduino, community-minded projects for new speakers to get feedback on their project, even a daemon that you can use to play battleships. So very cool. The presentations also gave us an overview of what people had learned. An amazing amount of things were learned, that is clear.

And then… Project Cypher was presented. The idea behind the project was to be able to keep track of information about people you know. In the original project pitch by team member Remco it would be like a CRM for Friends (FRM?). The problem (and I can so relate to this problem): Forgetting about specific things (Where do I know this person from? What do they like? When is their birthday). As we worked on the project, we came to the conclusion that this was also the ultimate tool for stalkers, but it could also very easily be applied by the police for keeping track of criminals. So it was creepy, or not. Team member Paul (who wanted to learn to be a public speaker) killed it in the presentation, sharing what we had learned and also doing an awesome demo of our system in action: Everyone that was at WeCamp was in our database, nicely tagged and easily searchable. You might be able to imagine the feeling of pride I had when I saw all this. 4 people who had never before met had created this project in just 5 days, and learned so much in the process.

After that, it was time for the closing notes and saying goodbye to everyone. The crew and coaches stayed behind to have a final dinner together and chat for a bit more, processing everything that had happened along the way. Such a fantastic week. Thanks everyone who was there.

PHP ClassesCalculating Periodical Events in PHP Part 1: The Problem Challenges (31.8.2015, 03:05 UTC)
By Dan Thanh
Sometimes it is necessary to calculate the days of periodical events, like for instance sweepstakes, contests, regular publications, etc..

In general, it is an easy problem to solve. However when the events span multiple days and must not occur in holidays, the problem becomes less trival to solve.

Read this article to learn how you can use the PHP Sweepstakes class to compute the days of regular event taking in account these nuances that may complicate the calculations.
LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP