Paul M. JonesAura: New Site, New Logo, New Releases (10.5.2013, 01:10 UTC)
Last week we updated the project site layout with a variation on Bootstrap called Spacelab, and incorporated our new logo. Along with that, over the past few weeks, we have been quietly releasing updated versions of all our library packages. … Continue reading
Link
PHP ClassesBetter Documentation for PHP internals - Lately in PHP podcast episode 35 (9.5.2013, 09:32 UTC)
By Manuel Lemos
With the inclusion of Zend Optimizer+ extension in PHP 5.5, the need for better documentation of PHP internals became more evident, so PHP contributors can write extensions that take the most of the core PHP features.

That is one of the topics discussed by Manuel Lemos and Ernani Joppert in the episode 35 of the Lately In PHP podcast.

They also talked about having more optimized PHP opcodes, some interesting PHP feature proposals that got rejected, as well the article about the top version control systems used by PHP developers.

Listen to this podcast, or watch the hangout video, or read the transcript to learn more about this and other interesting PHP discussions.
Link
PHP: Hypertext PreprocessorPHP 5.5.0RC1 is available (8.5.2013, 22:00 UTC)
The PHP development team announces the availability of the first release candidate of PHP 5.5. This release fixes some bugs as well as some possible leaks from our last beta. THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION! You can find an incomplete changelog of PHP 5.5.0RC1 here : Ignore QUERY_STRING when sent in SCRIPT_FILENAME in FPM SAPI.Fix build with system libgd >= 2.1 which is now the minimal version required (as build with previous version is broken). No change when bundled libgd is used. Fixed some bugs in SNMP Fixed bug where stream_select() fails with pipes returned by proc_open() on Windows x64). To get the full changelog, please, check the NEWS file attached to the archive. For source downloads of PHP 5.5.0RC1 please visit the download page, Windows binaries can be found on windows.php.net/qa/. Note that our release candidate cycle is only meant to bug fixes, no more features will be added to PHP 5.5 from now. Please help us to identify bugs in order to ensure that the release is solid and all things behave as expected. Please test this release candidate against your code base and report any problems that you encounter to the QA mailing list and/or the PHP bug tracker. We would like to thank all people helping us making PHP better by testing it and reporting problems, as well as all its contributors for their great work on this 5.5 version of PHP.
Link
PHP: Hypertext PreprocessorPHP 5.4.15 and PHP 5.3.25 released! (8.5.2013, 22:00 UTC)
The PHP development team announces the immediate availability of PHP 5.4.15 and PHP 5.3.25. These releases fix about 10 bugs aswell as upgrading the bundled libmagic library. All users of PHP are encouraged to upgrade to PHP 5.4.15.For source downloads of PHP 5.4.15 and PHP 5.3.25 please visit our downloads page, Windows binaries can be found on windows.php.net/download/.The list of changes are recorded in the ChangeLog.
Link
PHP: Hypertext PreprocessorSeriously: PHP 5.4.15 and PHP 5.3.25 really were released! (8.5.2013, 22:00 UTC)
We weren't trying to pull an April Fool's Day joke in May. A temporary glitch caused the latest distributions of PHP to not properly propagate to the mirror servers. This has been fixed at the root level, and it's now being distributed to all of the mirrors. We'll take some bacon to go with the egg on our faces, please!If you continue to experience issues with downloading these versions after 21:00 UTC on 9 May, 2013, please drop us a line at php-mirrors@lists.php.net, telling us from which mirror you're trying to download, and we'll get it resolved.We apologize for the delays and confusion this may have caused, and thank you for using PHP.
Link
PHP ClassesUsing Grep to Find Security Vulnerabilities in PHP code (7.5.2013, 08:50 UTC)
By Ryan Dewhurst
Finding all security vulnerabilities in a piece of code may be hard as it requires in depth analysis of what the code does. However, simple security vulnerabilities follow certain code style patterns that are easier to find with simple search tools.

Read this article to learn how you can find certain types of security vulnerabilities very quickly using the grep program.
Link
Lorna MitchellSetting Multiple Headers in a PHP Stream Context (7.5.2013, 07:35 UTC)

Last week I tried to create a PHP stream context which set multiple headers; an Authorization header and a Content-Type header. All the examples I could find showed headers built up as a string with newlines added manually, which seemed pretty clunky and not-streams-like to me.

In fact, you've been able to pass this as an array since PHP 5.2.10, so to set multiple headers in the stream context, I just used this:

<?php
$options = ["http" => [
    "method" => "POST",
    "header" => ["Authorization: token " . $access_token,
        "Content-Type: application/json"],
    "content" => $data
    ]];
$context = stream_context_create($options);

The $access_token had been set elsewhere (in fact I usually put credentials in a separate file and exclude it from source control in an effort not to spread my access credentials further than I mean to!), and $data is already encoded as JSON. For completeness, you can make the POST request like this:

<?php
// make the request
$response = file_get_contents($url, false, $context);

Hopefully this will help someone else doing the same thing next time (or at least I know I can come back here when I can't remember!), the array approach seems more elegant and maintainable to me.

Lorna is an independent web development consultant, author and trainer, available for work (interesting projects only). This post was originally published at LornaJane

Link
Liip PHPUCEU (6.5.2013, 19:09 UTC)

So this weekend I visited my hometown Berlin for the PHPUCEU. Actually this was in very close proximity to where I grew up, which was nice as I was staying at my parents place. Usually staying there requires a one hour ride to the hipster areas of Berlin to attend a conference. In this case it was just a 2 stop U-Bahn ride. That being said, this wasn't a "normal" conference. This was an unconference. As such attendees proposed talks they could give, but also talks that they would want to hear. Every morning every attendee would then have two votes for talks. The top voted talks would then be distributed across the 4 slots in the 3 available tracks. As such several of the sessions ended up being quite ad hoc with multiple people chipping in with what they new about the topic. What is also special about this event is that the sessions are just as long as the breaks to facilitate idea exchange about the session topics, but also about other topics. Overall I found this to be an absolutely thrilling experience.

Day one

PHPCR

I proposed a talk on PHPCR which was selected for the first session. I essentially gave the talk I had given multiple times before. But its still exciting to share the content repository vision for PHP. Looks like there might even be PHPCR support in the future for Jimdo and Magento?

Clean puppet

I attended this session by Soenke, Jakon und Hans-Christian mainly because I am still quite a noob when it comes to Puppet and Chef. I must admit, the possibilities excite me but I still prefer others to do the development for me. Somehow I just don't like the DSL of Puppet nor the Rubyness of Chef. This session didn't change this but did highlight some important aspects, specifically that you would keep the concept of environments as for up the chain as possible.

Behavior Driven Development

Kore and Gaylord gave this session. Gaylord was representing the more business level perspective while Kore the more technical one. The exciting part about BDD is that BDD can really bring those two sides closer together. However the most important take away for me from this session is that Behat can now generate stubs for Context definitions, which will drastically reduce the effort for expanding the DSL for non developers. Gaylord mentioned that he thinks that using BDD seriously increases development time. Yet the benefits of additional testing and always uptodate documentation outweigh these costs. We have played with BDD at Liip several times, but its time we get more serious about it.

Evening programm

I missed the 4th session of the day because I was chatting with people outside. After the last session ended we got together and each session was briefly summarized. We headed to a local beer garden which unfortunately was a bit overwhelmed with us and so the service was quite non existant. However we still stayed several hours. Talking about technology and organization challenges.

Day Two

Agile documentation

This was the first session of the day for me. Soenke was making some important points about how documentation does not only provide benefit but also cost. And this cost is best managed by single sourcing documentation (ie. not duplicating documentation) and by making documentation executable (via BDD).

Hood.ie

This session was slightly sabotaged by github. Kore and Hans-Christian wanted to explore Hood.ie life on stage but couldn't get the necessary code in time. So instead Kore spoke a bit about the core idea behind CouchApps. I was also able to add some tidbits about what Hood.ie adds as I recently got a personal demo by Gregor, one of the core developers. We then went through some of the code examples on the site. In general I believe that the coolest thing in CouchDB is the replication protocol, which is why I never understood why Couchbase decided to focus on elastic scaling instead. Thanks to async multi master replication with local storage one can build a whole new class of mobile applications. There is a very high chance that Hood.ie will become a big part of the Liip technology stack.

Symfony2 Rest API

I held this session by basically doing a walk through of a client application we are currently building as well as the Liip Symfony2 techtalk edition. Overall I was showing off how to integrate various Bundles: FOSRestBundle,

Truncated by Planet PHP, read more at the original (another 1567 bytes)

Link
Soenke Ruempler#phpuceu (6.5.2013, 16:20 UTC)
<?xml version="1.0"??>

It’s warm, the sun is shining, the sky is blue, you have php nerds ranting around - sounds familiar? Yes, it’s PHP Unconference time! It was the 2nd PHP Unconference in Europe, which took place last weekend at the Free University of Berlin. Thus, we Jimdos didn’t want to miss the opportunity to attend this awesome (un)conference.

There were loads of cool sessions, plus we gave a few ourselves, so here’s our review:

typical unconference weather
typical unconference weather
<script type="text/javascript">/* */

Unfortunately, there was no official pre-party, but our friend Till ‘@klimpong’ Klampaeckel organized a little get-together in the tiniest bar with the slowest barkeeper in Berlin. First day starts - as every unconference - with the voting session. In case you don’t know what’s an unconference: Every attendee can propose a talk or interest and introduce it with a few sentences. After that everybody can vote for the talk he/she would like to hear. This resulted in the following schedule:

 

by Daniel Fahlke
by Daniel Fahlke
<script type="text/javascript">/* */

We started with Lukas’ talk about PHPCR, which is a set of php interfaces following the JSR-283 standard. There’s also a reference implementation called jackalope. Lukas gave us some very nice insights to the project itself and the goals they want to achieve.

Next up: I talked about “What’s wrong with php?”. Sönke co-moderated a session about puppet, where they talked a lot about anti-patterns in puppet, and why you should also use your existing knowledge about software design when writing puppet. Sidenote: checkout out our puppet-skeleton for testing purposes.

Kore and Gaylord gave a session about behavior driven development and testing in general, to ensure you as developers and the marketing/product people are talking about the same thing when planning a product. We talked a lot about Behat, Mink and the do’s and don’ts in BDD - also this session was kind of a great foundation for Sönkes talk the next day.

Next day started the same as the first, with a voting session. Many of the attendees came up with new ideas for a talk, thus we had some great topics for the 2nd day.

by Daniel Fahlke
by Daniel Fahlke
<script type="t</body>"/>

Truncated by Planet PHP, read more at the original (another 9610 bytes)

Link
Anthony FerraraOur Failure As An Industry (6.5.2013, 15:12 UTC)

In the April issue of the PHPArch magazine (also published on her blog), Elizabeth Tucker Long wrote a really interesting editorial piece coining a concept she called Security-Driven-Development. She (quite correctly) identified a problem in the current development community where security has become an after-thought (if it's thought of at all). This isn't a new concept, in fact it's a concept that I and many others have been preaching for quite a while now. However I've been coming to realize that I've had it wrong the whole time. And I think the entire industry is getting it wrong today.

Read more »
Link
LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP