PHPDeveloper.org

Inhoud syndiceren
Up-to-the Minute PHP News, views and community
Bijgewerkt: 2 dagen 3 uren geleden

SitePoint PHP Blog: Getting Started with PHP Underscore

do, 17/04/2014 - 20:50

The SitePoint PHP blog has a new article posted showing you how to get started with Underscore, a PHP library ported over from Javascript's popular Underscore.js library with many of the same methods intact.

If you've ever used the Backbone framework for JavaScript, you'll already be familiar with Underscore. Indeed, it's become incredibly useful for JavaScript developers in general. But did you know that it's been ported to PHP? [...] Underscore describes itself as a "utility belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It's the tie to go along with jQuery's tux, and Backbone.js's suspenders."

He starts by showing you how to get it installed and some of the basic syntax of the methods it defines (basically replace the period with the double-colon) for both the procedural and OOP handling. He shows examples of a few of the more handy methods it provides including:

  • Each
  • Pluck
  • Minimum and Maximum
  • Filter and Reject
  • sortBy
  • groupBy

...and many more. There's also a bit of talk about templating and extending the library via "mixins".

Link: http://www.sitepoint.com/getting-started-php-underscore/

NetTuts.com: Routing Overview & Basics in Symfony 2

do, 17/04/2014 - 19:10

If you're relatively new to using the Symfony2 framework, you might be wondering about some of the things happening during requests to your application. One of these things is the routing and handling of each request. In this new post from NetTuts.com they introduce you to the foundations of Symfony2 routing in a screencast.

In the last video, I said we'd take a look at controllers next, but I actually feel it may be easier to learn the framework in a slightly different order. Instead, we're going to learn about the basics of Symfony 2 routing, to give our applications clean and pretty URLs and make it easy to manage our applications URLs and links. We're not going to get too detailed, as Symfony's routing can do quite a bit, but we'll at least cover what we need to know by keeping it straight and to the point.

The screencast is a bit less than 10 minutes long and provides an overview of the routing, how it interacts with bundles and controllers. There's also a bit about using annotations to help define routing information directly in the controller.

Link: http://code.tutsplus.com/tutorials/routing-overview-basics-in-symfony-2--cms-20754

Edd Mann: Storing PHP Sessions/File Caches in Memory using TMPFS

do, 17/04/2014 - 18:19

Edd Mann (of the Three Devs & A Maybe podcast) has shared a method of session storage he worked up to help increase performance in his application. He shows how to store sessions in memory with the help of TMPFS.

Yesterday I was looking through some application logs and noticed a significant bottleneck with I/O reads in the implemented file cache. [...] This was when I found 'tmpfs', saving me from all sorts of issues relating to adding yet another application to the production stack. 'tmpfs' appears as a mounted partition on your system, however, under the hood it allocates and uses a section of physical memory (non-persistent through reboots). [...] his results in the desired speed boosts, without tampering with the application logic itself. Even better, if the mount is unsuccessful for some reason, it will safety fall-back to using the persistent hard-disk solution.

Since PHP sessions make it easy to change the "save_path" location for the data in an ini value, setup is easy. He includes the needed configuration change and the commands you'll need to mount the tmpfs partition on your local file system.

Link: http://eddmann.com/posts/storing-php-sessions-file-caches-in-memory-using-tmpfs

Sameer Borate: PHP applications on Google App Engine

do, 17/04/2014 - 17:40

Sameer Borate has posted a guide to his site today showing you how to get started with PHP applications on the Google App Engine now that it natively supports it (well, mostly).

A couple of years back if you needed to run PHP on Google App Engine you were required to use a open source tool like Quercus, a 100% Java implementation of PHP, to run your PHP applications on the App Engine. However, as you would have guessed, it was not easy to work as with using a native PHP implementation. Now that App Engine natively supports PHP and MySQL, you can easily write PHP applications.

He walks you through the setup and configuration of the App Engine SDK to interact with the service and shows how to create a simple "Hello World" PHP application and deploy it. He talks some about the overall advantages of using the Google App Engine for your application including the scalability it offers and the secured infrastructure it runs on. He finishes the post looking at the different options for data storage and how sessions should be handled (hint: memcache).

Link: http://www.codediesel.com/php/php-applications-on-google-app-engine/

Three Devs & A Maybe Podcast: Delving into Laravel

do, 17/04/2014 - 16:46

The Three Devs and a Maybe podcast has release their latest episode hosted by Michael Budd, Fraser Hart, Lewis Cains and Edd Mann. In this new edition, Episode #20, Delving into Laravel, they talk about the Laravel framework in their continuing series covering web application frameworks.

In this weeks show we follow up the discussion on CodeIgniter with an introduction to Laravel. Introduced only a few years ago, the framework has been a 'breath of fresh air' in the PHP framework landscape. Starting with a brief history of the project and how it has evolved, we move on to highlight key features of the framework that set it apart. One such inclusion is the extensive use of an IoC container, and how Facades cater for an expressive code-base.

Other topics include PHP2Python, virtPHP and the history and philosophy of Laravel. You can listen to this latest episode either though the in-page player, grabbing the mp3 or by subscribing to their feed.

Link: http://threedevsandamaybe.com/posts/delving-into-laravel/

Community News: Packagist Latest Releases for 04.17.2014

do, 17/04/2014 - 15:05
Recent releases from the Packagist:

Loosely Coupled Podcast: Episode 2: My Code Is Perfect

wo, 16/04/2014 - 20:59

The Loosely Coupled podcast (with PHP community member hosts Jeff Carouth and Matt Frost) has released their latest episode, Episode #2: My Code is Perfect.

Writing clean code isn't something you pick up overnight, nor is it a brand new topic. In this episode Jeff and Matt discuss the characteristics and mechanics of creating clean code and how to approach your project from a clean code perspective. [...] In this episode, Jeff and Matt talk about code quality and beautiful code. Beautiful code follows a standard. If you don't have one, find one and adopt it.

There's some great notes in the post to accompany the recording with other suggestions, resources and links to other sources that can help you write cleaner, better code. You can listen to this latest episode either through the in-page player or by downloading the mp3 directly. You can also subscribe to their feed to get the latest episodes as they're released.

Link: http://looselycoupled.info/blog/2014/04/14/episode-2-my-code-is-perfect/

SitePoint PHP Blog: Implementing Multi-Language Support

wo, 16/04/2014 - 19:18

The SitePoint PHP blog has a new post from Jacek Barecki talking about a few ways you can include multi-language support in your PHP applications. There's not much in the way of actual code here, but there are links to some other tools that can help get the job done.

Setting up a multilingual site may be a good way to attract new customers to your business or gain more participants in your project. Translating a simple site with a few static pages probably won't probably be complicated, but more complex PHP web applications may require a lot of work when launching multiple language support. In this article I'll present different types of content that need to be taken under consideration when internationalizing a site.

He breaks it down into five different types of content that you might want to translate:

  • Multi-language Static Content
  • Database content
  • User submitted content
  • Resources (images, videos, etc)
  • Other types of content

He wraps it up with a few recommendations including making a checklist of the things you want to translate to figure out what tools you need to use.

Link: http://www.sitepoint.com/implementing-multi-language-support/

PHPBuilder.com: Using PHP Configuration Patterns Properly

wo, 16/04/2014 - 18:52

On PHPBuilder.com today they have a new post showing different configuration patterns for getting localized settings into your applications. They show the use of INI files, PHP scripts, text files, XML data and a database call.

PHP is a cross platform language. It is a server based application so we must think about the configuration settings of the PHP software. There are various ways of creating configurable PHP applications. The configuration flexibility comes as a built in feature in PHP. But we must understand the requirement clearly before making an application configurable. This article explores different PHP configuration patterns and their implementation.

For each of the options mentioned, there's a brief description of what the method is, some of the common uses and a code example showing a basic implementation. The database pattern is the only one without a code example as the database interface varies widely from application to application.

Link: http://www.phpbuilder.com/articles/application-architecture/using-php-configuration-patterns-properly.html

Federico Cargnelutti: TDD: Checking the return value of a Stub

wo, 16/04/2014 - 17:25

Federico Cargnelutti has a helpful post to his site today for the unit testing/TDD crowd about checking the retuned value from a stub of an object in your tests. He's using the built-in mocking framework here, not something like Mockery.

State verification is used to ensure that after a method is run, the returned value of the SUT is as expected. Of course, you may need to use Stubs on a test double or a real object to tell the object to return a value in response to a given message. [...] In PHP, for example, you dynamically type the return value within the body of the method. This means that PHP mocking libraries cannot check the type of the return value and provide guarantees about what is being verified. This leads to the awkward situation where a refactoring may change the SUT behaviour and leave a stub broken but with passing tests.

He gives an example of a few classes - a Presenter and Collaborator - and a test that mocks out the Collaborator instance, calling a "getStories" method on it. He shows a situation where all tests pass in the initial version, but after some changes to the return type, a test that should fail doesn't. His solution for the issue revolves around DocBlock annotations and the Return Value instead of the built-in mock object return method.

Link: http://blog.fedecarg.com/2014/04/15/checking-the-return-value-of-a-stub/

/Dev/Hell Podcast: Episode 43: Erotic Art the Right Way

wo, 16/04/2014 - 16:15

In the latest episode of the /Dev/Hell podcast (Episode #34, "Erotic Art the Right Way") hosts Ed Finkler and Chris Hartjes talk with Josh Lockhart of Slim framework fame.

Our latest episode features someone who we're been trying to get on for a while: Josh Lockhart, the developer of the Slim Framework for PHP and the founder of the PHP The Right Way project. We also have a new sponsor in Nude New Relic!

Topics they discuss include things like Slim, Sinatra, Flask and Guzzle. You can listen to this latest episode either by downloading the mp3 or using the in-page player. You can also subscribe to their feed to get this and other great shows.

Link: http://devhell.info/post/2014-04-13/erotic-art-the-right-way/

Community News: Packagist Latest Releases for 04.16.2014

wo, 16/04/2014 - 15:05
Recent releases from the Packagist:

Community News: Recent posts from PHP Quickfix

wo, 16/04/2014 - 14:02
Recent posts from the PHP Quickfix site:

SitePoint PHP Blog: Can Great Apps Be Written in PHP - An Interview Series

di, 15/04/2014 - 20:05

Matthew Setter has started off a series of posts on the SitePoint PHP blog with the first post interviewing community members to answer one main question, "can great apps be written in PHP?"

I read an old post, circa 2010, on the MailChimp blog a little while ago, about their experience using PHP. It struck a chord with me, because the sentiments they shared I've felt myself, and heard echoed many times over the years. [...] Despite its successes, or people's successes with it (a la Facebook, MailChimp, Hailo, Google, and others), it's inferred we should use languages which had their foundations as pure languages; not ones which came to be a language, as PHP evolved into over time.

He references some of the other comments in the Mailchimp article about their experience with the language along with mentions of a few others. He wonders if these negative comments are true and, to get some answers, searches out other developers and their opinions. In this first interview he talks with Bobby Deveaux about his background in the language, what he'd like to see added and more.

Link: http://www.sitepoint.com/can-great-apps-written-php-interview-series

Master Zend Framework: Howto Use Constructor Injection In ZF2

di, 15/04/2014 - 19:50

The Master Zend Framework site has a new tutorial posted today introducing you to constructor injection in Zend Framework 2 applications, specifically in controller classes.

s it right to use setter injection? Or is it evil, to be avoided at all costs, for the explicitness of constructor injection? In today's post, we explore that and how to implement constructor injection in ZF2 controller classes. Recently on Master Zend Framework, I wrote about using Setter Injection in Zend Framework 2, to supply dependencies to Controller classes.

He talks about the "magic" that can come with frameworks and how constructor injection of the ServiceManager can help clarify and remove some of the problems associated with "magic". He walks you through three steps to getting the ServiceManager injected into the classes:

  • Implement a Class Constructor
  • Initialise your controllers via FactoryInterface
  • Use factories Instead of invokables

He also points out a few benefits to this method of injection, including that it makes the controllers easier to test and the main goal - lack of "magic" in dependencies.

Link: http://www.masterzendframework.com/tutorial/howto-constructor-injection-in-zf2

NetTuts.com: How to Use New Relic With PHP & WordPress

di, 15/04/2014 - 18:43

The NetTuts.com Code blog has posted the second part of their series showing how to use the New Relic monitoring service in various kinds of web applications. In the previous article they looked at using it in a Ruby application, but in this new post it's all about PHP.

Today, we will look at how to monitor a PHP application using New Relic. More specifically, we will set up a basic WordPress installation and get some performance data about it, in the New Relic dashboards. [...] With the PHP version of the agent, the environment is a lot more important, as the agent is installed and lives on the box where the application will be deployed, rather than being part of any particular app.

They use an EC2 instance for their example, but the steps can be applied on other systems. They help you get the needed software installed, validate they're correctly configured and do a basic setup of WordPress. Next up is the steps to install the New Relic "newrelic-php5" software and get it fully installed. They also include the updates you'll need to make to your Apache configuration to configure the New Relic instance and how to keep the agent up to date.

Link: http://code.tutsplus.com/tutorials/how-to-use-new-relic-with-php-wordpress--cms-20465

InfoTuts.com: Create Login With Google Plus in Your Website With PHP

di, 15/04/2014 - 17:20

On the InfoTuts.com site they've posted a tutorial showing you how to make a "Log in with Google" button for your application and make it work with a little PHP magic on the backend.

So you want to allow users to login into your website using their gmail credentials? You have seen various websites that allow their users to login in their websites using gmail, facebook, linked in, Microsoft, git hub credentials. It's time to integrate it in your website. We will cover all the login system in our posts one by one and this one is dedicated to create Google Plus login for your website with PHP using OAuth2. Google offers many APIs like Google Maps, translate API, Analytics ApI etc. Today we will use its Google Plus API so lets proceed with our tutorial.

They break the process down into about five steps:

  • Login to Google API Console. Go to APIs and you will have to turn on Google Plus API.
  • Go to APIs and Auth and then under credentials tab. Click on create new client ID as shown below.
  • Now when you will have to enter your website path and the file path (redirect URI) to get your new client ID.
  • Now you have to set Consent screen.
  • In consent screen if you have entered Google Plus page path then you will have to approve connection.

The code for the actual connection is in the last step. It uses Google's PHP client libraries to configure and make the request, fetch the access token and grab the Google+ user's data.

Link: http://www.infotuts.com/login-with-google-plus-in-your-website-php

Zumba Engineering Blog: Enforce code standards with composer, git hooks, and phpcs

di, 15/04/2014 - 16:13

The Zumba Engineering blog has a new post looking at a way you can control code quality and standards with the help of Composer, git hooks and the PHP Code Sniffer (phpcs) tools.

Maintaining code quality on projects where there are many developers contributing is a tough assignment. How many times have you tried to contribute to an open-source project only to find the maintainer rejecting your pull request on the grounds of some invisible coding standard? [...] Luckily there are tools that can assist maintainers. In this post, I'll be going over how to use composer, git hooks, and phpcs to enforce code quality rules.

These three technologies are combined together to make a more seamless experience for the developer while keeping the code quality high. Their method makes use of the "scripts" (post-install-cmd) feature of Composer to, after the installation of all packages, set up a git hook script that will run the phpcs checks on pre-commit. It's a pretty simple shell script that kicks back any errors it might find before the user can commit their changes.

Link: http://engineering.zumba.com/2014/04/14/control-code-quality