Posts Tagged ‘new patch’

Jani Hartikainen’s Blog: Why does everything need to be integrated into a framework?

In this new post to his blog Jani Hartikainen wonders if “everything needs to be integrated into a framework”.

There is occasionally people asking about things such as “Is there an integration for X in framework Y?” Then they are disappointed when it isn’t, acting as if it’s a really bad thing. But why do things need to be integrated to begin with?

He points out that other frameworks (ex. Ruby on Rails) have a lot of things integrated, but he doesn’t agree that this should be the standard. He suggests that, by not having tools that are tightly coupled with the framework you’re using, you open yourself up to a wider, possibly better range of external tools.

One could argue that integrated libraries give you a productivity boost. While it may be so, I think the main boost you get is the very first steps: It’s easier to get started, but after that the benefit fades. In the long run, it may even turn into a poor investment in general, as you could have learned a general purpose tool instead.

Jakub Zalas’ Blog: Mocking Symfony Container services in Behat scenarios with Mockery

Jakub Zalas has a recent post to his blog with a hint about how to test Symfony container services by mocking them (when testing with Behat) with the help of Mockery (and the PSSMockeryBundle).

Mocking objects in unit tests is pretty straightforward as every object used in a test case is usually created in a scope of one test class. In functional tests it’s a bit harder since we either don’t have full control over objects being created or it’s simply too laborious to mock half the framework. [...] We’re getting the service from a container [in the example] and calling a method which should send a lead. The problem is we don’t want to actually call an API while executing Behat scenarios.

Rather than hitting up the API for each test, he opts to create mock objects and results with the tools Mockery has to offer. He gives code for a “is API available” method that either returns a valid container or a mocked object, depending on how it was called.

Kurt Payne’s Blog: How to Unit Test pcntl_fork()

Kurt Payne has a new post to his blog showing how you can unit test your process forking in your PHP application (pcntl).

At some point, many php developers turn to the pcntl functions in php to write a daemon, or server, or simulate threading. But how do you unit test this with complete code coverage? [...] We need to engage some black arts php extensions to make this happen. An installation guide follows, and the post ends with a complete listing of the unit test.

He uses the test_helpers extension (as provided by Sebastian Bergmann) and Runkit to allow the test to define new methods copying the current pcntl methods and mocks up the responses. Tests are included to check the parent of a process, checking the children of a process and testing that a fork could be made. Hes’s even included visual proof of this working.

Ade Slade’s Blog: Integrating Zend Framework 1 and Pimple

In this new post to his blog Ade Slade shows how to integrate the Pimple lightweight dependency injection container with a Zend Framework application.

This post will describe a way to integrate Zend Framework 1 and Pimple. A complete working version of the code is available on github. Thankfully, Zend Framework 2 features its own Dependency Injection Container. Happy days. Still, if you’re not prepared to wait, you may find this useful.

He shows how to add a resource plugin into the Pimple container – an entity manager that’s part of Doctrine. He creates his controller, pulling the manager from the Pimple container and includes a unit test for the controller too (using PHPUnit, but he also suggests Mockery).

PHPMaster.com: MongoDB Revisited

In this new post to PHPMaster.com today Ahmed Shreef continues on from his previous introduction to MongoDB and gets into more detail on things like cursors, query operators, queries on embedded documents and the sort/skip methods.

In my previous article Introduction to MongoDB I discussed installing Mongo, its PHP extension, and how to perform simple insert and find operations. Of course there are many, many more features than what I mentioned so I wanted to write another article to show you some of them.

Other topics mentioned include queries on arrays of data and running queries with indexes to improve their performance. Code is also included for each example.

Larry Garfield’s Blog: PHP project structure survey

Larry Garfield has posted the results of some of his research into popular PHP frameworks and projects and see how they handle their structure as it relates to the PSR-0 standard.

As Drupal is in the process of considering how to restructure code to best leverage the PSR-0 standard, I figured it would be wise to take a quick survey of how some other major projects organize their code bases. This is not a complete rundown of every project, simply roughly comparable notes for those areas Drupal is currently discussing. I am posting it here in the hopes that it will be useful to more than just Drupal.

The projects he looked to for his examples were:

Stuart Herbert’s Blog: Introducing ContractLib (Programming Contracts)

In this recent post to his blog Stuart Herbert introduces a system he’s created to handle “contracts” in PHP development – ContractLib.

Programming contracts are tests around functions and methods, and they are normally used: to catch any ‘bad’ data that has been passed into the function or method from the caller, and to catch any ‘bad’ data generated by the function or method before it can be returned to the caller. These are pre-condition and post-condition tests, and they are tests that either pass or fail.

He points out that by having contracts you not only increase the robustness of your code but you also save time not trying to hunt down data-related issues. Using pre-conditions, you can can check data to ensure things like correct formatting, data that’s out of range and data that might be missing. His ContractLib comes with a set of tests that provide good examples of how to use the functionality. Installation instructions are included.

Zend: Zend Takes The Pulse Of Developers In The APP Economy

In this new press release Zend has announced the posting of the results from their “Zend Developer Pluse” survey – a survey taken of developers world-wide about their habits, preferences and desires.

Zend Technologies addresses [the question of how a new demand for a new generation of apps] in Zend Developer Pulse, a new survey series that takes the pulse of a vibrant community of developers from around the world. The company’s first developer survey conducted in late November 2011 offers insights on emerging technology and career trends captured from 3,335 respondents. The findings are summarized in a report now available at [http://www.zend.com/topics/zend-developer-pulse-survey-report-0112-EN.pdf].

The press release mentions some of the details from the survey including that 66% of developers will be working with mobile app development projcts, that next-generation UI deveopment scored high in skillsets, there was a strong interest in cloud development and that there’s been a strong rise in the need for PHP development skills in the last year.

You can read the entire report here.

Udemy Blog: Code Wars: PHP vs Ruby vs Python – Who Reigns Supreme [Infographic]

On the Udemy blog there’s a new post with a large infographic showing “who reigns supreme” comparing Ruby, Python and PHP (don’t worry, this isn’t flamebait…it’s actual good stats comparing the state of these three languages).

Just as the Japanese, Spanish and French languages are uniquely different, programming languages also have their variations, some more popular and easier to use than others. With the recent introduction of some new ones, there is a ‘war’ of modern day languages. What’s easier and faster to use is not always the best option.

The graphic includes stats like:

  • Usability ratings
  • Popularity in the TIOBE index
  • How much it’s discussed (from the IEEE Spectrum, IRC)
  • The number of open job postings
  • Average run time/lines of code

Check out the full post for more interesting data.

DevHell Podcast: Episode 3: Beatings Will Continue Until Test Coverage Improves

The latest episode of the DevHell podcast has been posted – Episode 3, “Beatings Will Continue Until Test Coverage Improves”.

Fresh off our holiday break, we’re back with our longest show yet. We talk about Chris’ new book The Grumpy Programmer’s Guide To Building Testable PHP Applications, including his experiences self-publishing with Leanpub. Chris also explains how he fears no precipitation on his excursions to the Codemash conference in Ohio. Then Ed talks about the thought process that lead to his latest shit-stirring blog post “The MicroPHP Manifesto.” Ed may or may not begin crying openly. Finally, we discuss when it might be necessary to trash your existing application and rewrite it.

You can listen to this latest episode either via the in-page player or by downloading the mp3 directly.