|Hi there, and welcome to phpweekly.com.
Want advice on how to improve your local tech group? Or to learn about the newly updated Symfony website? Or to hear about Appserver from the horse's mouth?
We've got it all, and more, in this week's edition, including a detailed screencast in YouTube showing you how to set up Jenkins for continuous integration in a PHP-based application.
If you have written or read any interesting PHP articles that you'd like to share with the community, please feel free to email me the details.
Thanks for reading.....
Improving Your Local Tech Group
On the Engine Yard blog today PJ Hagerty has a new post sharing some of his suggestions to help improve your local tech-related group and promote growth. He suggests things that are easier when there's more than one person involved in making it a success - things like "diversify responsibilities" and having a "coordinator for outside the group activities", but they're helpful tips. He also points out a few other things to remember - that communication with the group is key, "thinking globally" to get your group involved outside the local scope and getting sponsors involved.
Symfony Website Updates
On the Symfony project blog today there's a new post from Fabien Potencier talking about some updates that have been made to the Symfony website. They're still working on the translations, but if you'd like to help you can contribute to their github repository.
The Importance of Mastering the Fundamentals
Brandon Savage writes - One of the most common questions I get is, "how can I get better at X?" Whether X is object oriented programming, the MVC design pattern, PHP in general or just some generic question, it's something people are seeking out. The answer that I always give them is that it's critical for them to understand the fundamentals of whatever they're seeking knowledge in.
ContainerAware Considered Harmful
A while ago Tobias Schlitt tweeted "ContainerAware is the new Singleton". While many people agreed by retweeting and faving, here he has elaborated some more on this statement.
Tutorials and Talks
Functional Programming in PHP
The new hype in programming is all about functional programming paradigms. Functional languages are used more and more in greater and better applications. Scala, Haskel, etc. are thriving and other, more conservative languages like Java started to adopt some of the functional programming paradigms. However, what only a few people know is that PHP is quite versatile when it comes to functional programming. All the main functional programming concepts can be expressed in PHP. So, if you are new to functional programming, be prepared to have your mind blown, and if you are already familiar with functional programming, be prepared to have great fun with this tutorial.
DTrace PHP Using Oracle Linux 'playground' Pre-Built Packages
We've released DTrace-enabled PHP 5.5.4 RPMs to make testing DTrace on Oracle Linux easier. As a result, the manual PHP install steps listed in Using PHP DTrace on Oracle Linux can be skipped. There are updated Betas of the "UEK3" Linux Kernel 3.8.13-16 and the dtrace-utils tools available too. With these, you now can DTrace PHP applications under Apache or with php-fpm, as well as command line PHP scripts.
Profiling PHP Applications with XHGui
On the Inviqa techPortal today there's a new post from Lorna Mitchell showing you how to profile your PHP applications with the help of the XHGui tool (and XHProf extension). She walks you through the full installation, including other things the tool depends on (like MongoDB and the XHProf extension). She shows how to run the installer, configure a virtual host correctly (using mod_rewrite) and some example screenshots of what the resulting statistics report. This includes things like "wall time" and parts of the application that may be "memory hogs". There's also an example of a handy feature called the "Callgraph" that shows you a visual representation of the performance of the execution of the app.
Symfony2 Components Overview: HttpKernel
In the second post of the Symfony2 components series we are going to talk about the HttpKernel component. If the HttpFoundation component provides the building blocks of the HTTP protocol, the HttpKernel component makes use of them to define an abstract process for converting a Request into a Response.
Creating a Subscription-Based Website with Laravel and Recurly, Part 2
In the first part of this series we created the bare bones of a subscription-based website using Laravel. We also set the site up with roles and granted a pending role to new users. We’re now at the point where we can perform basic registration, login and logout. In this second part, we’ll integrate Recurly to set up our paid membership plans.
Branching Out With Twig
Twig is a template engine for PHP that has all the major features you may need in your projects. It was created by Fabien Potencier, the developer behind the Symfony framework and it's released under the new BSD license, so it's completely free to use. That considered, you should not be surprised by the fact that Twig is the Symfony framework's template engine of choice. Its requirements are so basic that you may think it can run everywhere. In fact, Twig only needs a version of PHP greater than or equal to 5.2.4. If you've ever used Smarty, you'll see a lot of similarities and will be able to start using it very quickly.
Saving a HUGE Bandwidth Cost in WordPress by Automatically Serving Media Contents From copy.com
The title almost says it all. Our mission is to save the bandwidth cost (and ensure better deliverability) by leveraging the power of headless installation of copy.com client in Linux, then integrating it into WordPress. The integration must work seamlessly so that the viewers don’t see a difference and at the same time you don’t have to put any extra effort. Beside saving bandwidth, this also reduces extra load from your web server. There’s another surprise which I will tell you later. For now, keep reading :)
Verbs in Class Names
Mathias Verraes has an interesting post on his site suggesting that using verbs in class names can make for easier to understand and easier to read code - more "natural language." He suggests that class names, in some cases, could be used as "messages" to the developers using them in the OOP. He includes some suggestions (based on the suggestion of nouns from another post) that use verb-names to convey what they're doing. He also talks about three specific cases - specifications, exceptions and interfaces - and includes samples of each using this idea of verb-based class names.
Concurrent HTTP Requests in PHP Using pecl-http
Mohammad Emran Hasan has posted a quick example of using the pecl_http extension to make concurrent HTTP requests. His code shows three example connections to a made up URL on three different endpoints. With the HttpRequestPool functionality, all three can be requested at once and tracked to extract the response body.
Creating a Twitter API Proxy in PHP
Introduction to Redbean
When it comes to RAD and prototyping, there are lots of tools available to help get projects up-and-running quickly. From quick-starts to micro-frameworks, from build tools such as Composer to one-click installers and of course ORMs – there are all sorts of ways to speed up development time. I'm going to look at Redbean, an ORM with a difference, which is ideal for prototyping.
|News and Announcements
DevBeat 2013 November 12-13th, San Francisco
DevBeat is the can’t-miss event for those bright, motivated, mid-career developers. The program is high-level but hands-on, aimed at giving developers the latest tools, insights and cutting-edge ideas they need to take their craft to the next level. This event will now feature a special chat with PHP creator Rasmus Lerdorf. Tickets are selling fast!
Midwest PHP Conference March 15-16th 2014, Minneapolis MN
We are proud to announce MidwestPHP 2014. This coming MidwestPHP will be hosted at a new location in the heart of Downtown Minneapolis, at the University of St Thomas Minneapolis Campus. The dates for the upcoming year are March 15-16, 2014. We hope to see you there.
ZendCon Europe 2013 November 18-20th, Paris France
The conference will take place in a beautiful hotel venue and great location in Paris – the “Marriott Rive Gauche”. The first day (Monday) will be dedicated to tutorials and certifications. The second and third (Tuesday 19th and Wednesday 20th) will be dedicated to the ZendCon itself. There will be lots of meetings, trade shows and conference spaces in order to provide a very pleasant experience to all the attendees.
Zero to Jenkins - PHP Continuous Integration
David Adams has posted another screencast to YouTube. This one is about setting up Jenkins for continuous integration in a PHP-based application. He also shows some of the results of the job executions, both passing and failing. The video is about 50 minutes long so it's not a quick installation, but it is detailed.
Expert PHP and MySQL: Application Design and Development (by Marc Rochkind, published 30th September 2013)
Expert PHP and MySQL takes you beyond learning syntax to showing you how to apply proven software development methods to building commerce-grade PHP and MySQL projects that will stand the test of time and reliably deliver on customer needs.
An Interview With The Appserver.io Crew
What if you could reliably run PHP without Nginx or Apache, but also without relying on its internal server? What if you could do async operations in PHP with true multi threading, fully taking advantage of multi core processors without hacks or a jungle of callbacks? What if you had drag and drop installation support for your PHAR packaged web apps in an environment identical to its production counterpart? Enter Appserver (application server). The Appserver is developed in PHP for PHP and lets you do all that and more. There's no point in me boring you with the technical specifications – instead, here's the Appserver crew doing their best to explain what it is, why it is and why you want it.
If you have a position that needs filling, let us know and we will include it.
Senior Software Engineer (PHP) London
The Lead engineer will possess entrepreneurial drive and hold a track record of significant engineering achievement and demonstrated ability to achieve goals in an innovative and fast paced environment. They will write and deliver code that meets all specifications, have mastered design patterns and are able to codify and apply best practices to work produced. They will be a recognised leader who effectively trains and mentors junior employees.
Software Engineer (PHP) London
This role involves working in an agile software engineering team across a number of products including transactional web-sites and a high capacity, high availability, content management system that supports global online activities. Combining strong technical analytical skills, domain and product knowledge with effective planning, they will participate in the development of key backend business logic components of web applications that drive online web properties
DeskPRO is hiring Full Stack PHP Developer (Symfony/AngularJS) in London or Remote.
Join our small London based team (excellent remote workers considered as well) building a large PHP application where your work will have immediate impact on our millions of end users. Lots of interesting projects coming up including adding elasticsearch and memached to our stack, writing a DeskPRO app for telephony based upon Twilio, integrating our software with other companies APIs, adding functionality to our phonegap mobile app as well as continuing the development of our core software platform.
PHP Engineers for Runtriz.com in Hollywood, CA
We are looking for an experienced web developer to work on a small, productive team. Team members should be able to work full-time with a high level of focus and dedication. It's important that team members have a problem-solving attitude and can work through issues without needing a lot of help or guidance. We're looking for people who are always striving to learn new technologies and enjoy spending free time experimenting with and learning new development techniques and languages. If you feel like this describes you please click on the link for more info.
PHP (Drupal) developers at Torchbox (Bristol and Oxford, UK)
Passionate about PHP, delirious about Drupal and want to work on a wide variety of challenging yet fun projects for fantastic clients? If yes, then Torchbox would love to hear from you! In return, we can offer an enviable working environment (country park or buzzing Bristol), a competitive salary, all the usual kit and sometimes even a ski trip.
Full Stack Developer
Major television production company seeks an experienced web developer to join its digital division. The ideal candidate possesses a deep expertise and abiding love of web development, an incredible track record of producing stellar web applications (with a long list of URLs & GitHub repositories to prove it), a near-supernatural work ethic and a fantastic sense of humour.
Junior PHP Web Developer to support charity clients at Fat Beehive in London
Are you personable? A problem solver? Passionate about web technology and interested in charity and not for profit clients? Fat Beehive are looking to hire a junior PHP web developer! We are excited to be looking for a proactive developer, a natural problem solver, who will enjoy working with our not-for-profit clients, and be an integral part of our team.
Machine Learning / AI skills (project based)
Inovica are looking for someone to work with them on detecting ecommerce products on sites and extracting relevant information. In the first instance please email firstname.lastname@example.org stating the experience you have in this field. They don't have a job description online but will reply to every email they receive.
Message Digital Design Ltd is Hiring a Web Developer (PHP)
We are looking for an experienced developer to work in our spacious offices in central Brighton, helping to deliver high-quality websites, e-commerce and online systems to a wide range of clients. At Message we give a damn about building the web the right way, and the successful applicant will too.
Ballers Bridge is Hiring a Sr. Yii Developer
We are looking for a motivated and outstanding candidate to lead our product development. The ideal candidate is an experienced problem solver, quick thinker/learner, self-motivated and not afraid of challenges.
PHP Engineers for Bright.Com in San Francisco
We are looking for PHP engineers to join our growing team! The ideal candidate is language agnostic, and can work with both scripting languages (such as Python and PHP) as well as strongly typed languages (such as C++ and Java), and has a passion for taking an idea and exploring, tinkering, debating, and demonstrating the fastest, most efficient, flexible and scalable implementation approaches. Experience working with traditional SQL databases as well as newer technologies, indexes and data stores is key (such as Solr, ElasticSearch, Redis, or Neo4j), and you must be comfortable using Linux and other open source technologies.
Senior PHP Developer in Bucharest, Romania
We are searching for a passionate PHP developer who will be part of a team of senior programmers and experienced testing engineers, directly involved in technical development projects, using Agile Scrum as methodology.
Performance Telecom (UK) seek freelancer (Remote worker) - Python and PHP Developer
This position is primarily Python, but PHP skills are also required.
Interesting Projects, Tools and Libraries
This is a plugin to help fully manage your Wordpress projects with the help of Pomander.
NewRelic PHP agent integration for Nette Framework
This component ships a collection of enhanced proxy logger handling tools. The build status of the current master branch is tracked by Travis CI: Build Status
This plugin provides DataSource and Models for Twitter API. In addition it provides Controller/Component for Auth, Helper and Behaviours, for CakePHP 2.x and PHP 5.3 later.
Formagic is an easy to use, fast and highly extensible HTML form generator written in PHP5. Formagic provides a framework for validating and filtering user input with very little effort.
This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ. Requirements: PHP 5.3 due to the use of namespaces. The library was used for the PHP examples of RabbitMQ in Action and the official RabbitMQ tutorials.
MtHaml is a PHP implementation of the HAML language which can target multiple languages. Currently supported targets are PHP and Twig, and new ones can be added easily.
Selenium 2 webdriver "thin client" for php 5.3+ and namespaces.
Simresults is an open-source, object-oriented library built using PHP5. It allows you to read out log files of a race game and transforms them to a simple data model.
PHP library for handling chunk uploads. Library contains helper methods for: testing if uploaded file chunk exists, validating file chunk, creating separate chunks folder, validating uploaded chunks and merging all chunks to a single file.
Patchwork UTF-8 gives PHP developers extensive, portable and performant handling of UTF-8 and grapheme clusters.
BoostCake is a plugin for CakePHP using Bootstrap
So, how did you like this issue?