|Here it is PHP fans - the 100th edition of phpweekly.com!
Issue number 1 was delivered to 7 subscribers. Issue number 100 will be delivered to over 17,000 subscribers.
We would not be where we are today without the help and support from you in the PHP community, from our faithful readers to the article writers, from the bloggers to the podcasters.
So for that we want to simply say Thank You, and here's to Issue number 200.....
Katie and Ade
One place for all your BDD and TDD questions - Semaphore Community
All you ever wanted to know about the best software development practices. Tutorials about continuous integration, test-driven development, behavior-driven development and devops automation. Start reading now!
Call for Feedback: The New PHP and HHVM Drivers
A blog on the MongoDB website this week looks at the architecture for their next-generation PHP driver to support PHP 5.x, HHVM, and PHP 7.0, and asks for feedback.
Updating PHP is Everyone’s Responsibility
After launching WPupdatePHP, Coen Jacobs explains why it is up to individual users to ensure their PHP versions are up to date.
Why I support “The League”
Rafael Dohms blogs this week about a group of developers who have gathered under a single flag, calling themselves The League. Essentially The League is a collective of composer packages that he has dubbed “The League of Extraordinary Packages”. With a lot of press around The League lately, Rafael explains here why he is so supportive of it.
PHP7: More strict! (but only if you want it to be)
It’s finally official: PHP7 will come with Scalar Type Hints (STH) and an optional “strict mode”.
Tutorials and Talks
Custom Block Development in Magento
In this tutorial we are going to explore Magento blocks, one of the essential components of the Magento architecture. We'll see the difference between structural and content blocks. I'll also demonstrate how you can create custom blocks programmatically.
How to Use Github’s API with PHP
Github is one of the best ways to share code and collaborate. In this article, we are going to learn how to consume their API and how we can use it to accomplish some of our daily tasks.
Creating Custom Field Formatters in Drupal 8
With the introduction of annotated plugins, a lot has changed in Drupal 8. We have a more streamlined approach to describing and discovering pieces of functionality that extend the core. Along with many other components, the former Field API (part of the larger and consolidated Entity API) is now based on plugins. In this tutorial we will go through defining a custom field formatter for an existing field (image). What we want to achieve is to make it possible to display an image with a small caption below it.
Xdebug 2.3: Munging Errors
This is the third article in a series by Derick Rethans, about new features in Xdebug 2.3, which was first released on February 22nd.
Simple CRUD Application In PHP And MySQL
A CRUD application is a type of application that does database interactions (inserting, selecting, updating, deleting etc). This tutorial will be walking you through the process of creating a simple CRUD application in PHP and MySQL.
Create a Simple CRM in WordPress: Creating Custom Fields
In this series, we've been looking at how to create a simple CRM system in WordPress. In the first part of this series, we created a WordPress Plugin that registered a 'Contacts' Custom Post Type, but we've yet to cover how to store additional information for a Contact.
Use Laravel Contracts to Build a Laravel 5 Twig Package
Laravel 5 is finally out, with all the awesome features it brings. One of the new architectural changes is the new Contracts Package. In this article we are going to understand the reasoning behind this change and try to build a practical use case using the new Contracts.
Security Issue: Combining Bcrypt With Other Hash Functions
Is password_verify() safe against DoS attacks using extremely long passwords? Many hashing algorithms depend on the amount of data fed into them, which affects their runtime. This can lead to a DoS attack where an attacker can provide an exceedingly long password and tie up computer resources. Bcrypt is limited to 72 character passwords, so on the surface it looks like it shouldn't be vulnerable. This article digs deeper, with some surprising results.
Create a Quick REST API using Slim Framework
This post shows how to create a simple REST API using Slim framework. Slim is a PHP micro framework which lets you write quick PHP web applications. Here we will use it to build a REST API.
MongoDB 3.0 Features: Big Polygon
MongoDB has had geospatial query support since MongoDB 1.4. In subsequent versions we have added a range of new features, such as GeoJSON in MongoDB 2.4. In this post I will cover a new feature in MongoDB 3.0 for searching polygons that are larger than a hemisphere.
|News and Announcements
WordPress 4.2 Beta 1
WordPress 4.2 Beta 1 is now available! This software is still in development, so we don’t recommend you run it on a production site. Consider setting up a test site just to play with the new version.
Nomad PHP US - April 23rd 2015 20:00 CDT
Symfony2 - The Basics. Presented by Margaret Staples. How long will it take you to get up to speed on a new Framework? As long as the answer is an unknown quantity, possibly equaling infinite, you’re unlikely to take that leap. Aimed at beginners who may have never used a framework before, this talk’s goal is to equip you with all the information and understanding you need to skip the confusion and jump into developing with the Symfony2 framework. This talk will cover setting up a new project, understanding the file structure, the Routing->Controller->Template relationship, adding bundles, and the basics of implementing Commands and Services.
Nomad PHP EU - April 23rd 2015 20:00 CEST
Hack - Why Should I Care? Presented by Joel Clermont. In March 2014, Facebook released a new language called Hack. It adds static typing, generics and lambda expressions on top of the rest of the familiar PHP syntax. In addition, it allows for gradual adoption of these features and continued interoperability with existing PHP code. But why should you care? Do you need to work in a massive environment like Facebook to reap the rewards of learning a new language? I’ll make a strong case that Hack (and HHVM) are worth your time, give you a good demo of the language and show you how to get started. I don’t work for Facebook, but I dove into Hack the day it was announced and I’ve continued to follow its development with great interest. I have applications in production running on Hack, and I’m eager to show PHP developers of all skill levels why it’s worth their time to give Hack a look.
Ski PHP Conference - May 7-9th 2015, Utah
PHP Unconference Europe: 9-10th May 2015, Majorca
The third PHP Unconference has been announced for this May, in Majorca. The mission of PHP Unconference Europe is to bring together an international group, who have detailed knowledge of PHP and related web technologies. Tickets are on sale now.
A New Book About The N+1 Problem, and an Update to MLAPHP
Paul Jones will have a new book finished and ready for release soon: Solving the N+1 Problem in PHP. Although he has written and spoken about the N+1 problem several times over the past few years, this book is an extended disstertation on the topic. More updates when the new book and the update are finalised.
Lately in PHP Podcast Episode 57 - Features and Extensions to be Removed from PHP 7
As the launch date of PHP 7 is coming closer, PHP core developers have been discussing features and extensions to be removed or deprecated in PHP 7. This was one of the main topics discussed by Manuel Lemos and Arturs Sosins in Episode 57 of the Lately in PHP podcast. They also commented on the possibility of enabling the opcode cache extension by default in PHP 7, the proposal for caching PHP opcode when reading PHP code from custom streams, the proposal for an API to access parsed PHP code abstract syntax tree, the announcement of Zend Open Source JIT engine, and an article about how to check if OAuth tokens are still valid.
Voices of the ElePHPant - Interview with Evan Coury and Chris Hartjes
This week Cal Evans interviews Evan and Chris, two members of Roave, a hand-picked team of some of the most talented developers in the PHP community.
Acquia Podcast: Working With simplytest.me and Drupal.org
Tips and tricks for getting the most out of simplytest.me. Patrick Drotleff is a passionate contributor to the Drupal project whose work, including simplytest.me, pareview.sh, and the tongue-in-cheek BreakingHead card game, often centres around building tools that help others contribute to Drupal. Within minutes of Drupal 8 beta being announced at DrupalCon Amsterdam, I saw a tweet saying it was available to try out on simplytest.me. Though I had used the service before, I wanted to know how it actually worked and Patrick was kind enough to agree to show it off here on jam's Drupal Camp.
MageTalk Magento Podcast #26
Mistake Driven Development
Laravel IO Podcast: Episode 23 - New Beginnings, Envoyer and Laravel 5.1
The crew discuss the recent release of Envoyer and Laravel 5.0. Taylor gives a preview of Laravel 5.1. Jeffrey discusses current Laracast happenings.
php[architect] March 2015 Edition
The applications we write are useless without data. It’s true whether you're aggregating and comparing disparate sources, selling products online, or using a CMS to organise your websites. Data needs some place to store it safely and reliably. Databases don’t lend themselves easily to versioning, instead you need to track the intermediate steps that change the state of your schema. In this issue, we’ll look at some tools and approaches to help you with this task.
Expression Engine: Questions and Answers (by George Duckett, published 17th February 2015)
If you have a question about Expression Engine this is the book with the answers. Expression Engine: Questions and Answers takes some of the best questions and answers asked on the stackoverflow website. You can use this book to lookup commonly asked questions, browse questions on a particular topic, compare answers to common topics, check out the original source and much more. This eBook has been designed to be very easy to use, with many internal links set up that makes browsing in many different ways possible.
PHP Programming Professional Made Easy: Expert PHP Programming Language Success in a Day for any Computer User! (by Sam Key, published 21st February 2015)
Need basic tips on scripting for web development? Want to take the next step in programming and become an expert in the category without getting confused with technical jargon? Need a step by step walk-through to take your PHP Programming to the next level? Start from PHP basics in coding such as syntax, echo & print, right through to constants and variables!
To post a job advert please contact firstname.lastname@example.org
Fuzzy Matching Project Work
We are looking for someone to help on a specific project which will involve matching products on one website with products on another website. Someone with skills and demonstrable experience of matching algorithms is a necessity. If you can’t prove that you can do this kind of work please do not contact us. For the right person there is ongoing exciting work. In the first instance please contact us at email@example.com with “Fuzzy matching project” as the subject and we will then create a shortlist, providing the shortlist with information about our company.
Interesting Projects, Tools and Libraries
A full-featured email creation and transfer class for PHP.
Alice allows you to create a ton of fixtures/fake data for use while developing or testing your project.
Pickle installs PHP extensions easily on all platforms.
An open source but static composer repository generator.
Prophecy is a highly opinionated yet very powerful and flexible PHP object mocking framework.
Pimple is a simple PHP Dependency Injection Container.
A simple and swift MongoDB abstraction layer for PHP 5.4+.
Content analysis for the purpose of determining Internet media types.
Streamer is a generic library focusing on offering an object-oriented API to streams.
Sismo is a Continuous Testing Server written in PHP.
Composer-compatible library to interact with random.org's API in order to generate truly random lists of integers, sequences of integers, and random alpha-numeric strings.
A Copy/Paste Detector (CPD) for PHP code.
A PHP 5.3 library for asynchronously serving WebSockets.
A highly customiseable and blazing fast ORM library for PHP 5.4+.
Pux is a high performance PHP router.
Goutte is a screen scraping and web crawling library for PHP.
Purl is a simple Object Oriented URL manipulation library for PHP 5.3+.
|Please help us by clicking to our sponsor:
From our sponsors:
So, how did you like this issue?
Protect your PHP code with SourceGuardian 10. Free trial.