News Feed
Sections




News Archive
feed this:

Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Rafael Dohms:
Installing Composer Packages
October 14, 2014 @ 12:04:58

Maybe you've heard about Composer and how it makes working with PHP libraries and packages easier. There's lots of articles (besides the project documentation) that can help you get started but Rafael Dohms has just shared an excellent overview of versioning and the features the tool makes available to fine tune your requirements to just the right level.

I have been putting together a new talk about Composer, and that means looking around the community, doing loads of research and trying to identify the items that need to be covered in a talk. Mostly I have been trying to identify things that people do on a regular basis that according to composer internals is either wrong or not ideal. One such thing that I have found is the proper selection of versions, and that also led me to find a new feature in composer that makes everyone's life so much easier. So let me break this down.

He starts with a look at the selection of the actual version you'll need and how Composer treats each type of version match (strict vs wildcards vs a mix of the two). He shows an example of adding one of these version strings to a "composer,json" file, both manually and via a command line call.

0 comments voice your opinion now!
composer version package require install tutorial

Link: http://blog.doh.ms/2014/10/13/installing-composer-packages/

Matthias Noback:
Composer "provide" and dependency inversion
October 06, 2014 @ 09:53:20

Matthias Noback has a new post today responding to a recent post talking about virtual packages with Composer (using "provide") and some of his own thoughts of how it relates to dependency inversion.

This is a response to Peter Petermann's article Composer and virtual packages. First, let's make this totally clear: I don't want to start an Internet war about this, I'm just pointing out some design issues that may arise from using Composer's provide option in your package's composer.json file. [...] Yes, if a user wants to run the code in your library, they need to have some class that implements [the "provides" requirement]. But no, this shouldn't be reflected in the dependencies of the library. Let me explain this by taking a look at the Dependency inversion principle.

He gives an example of using a specific package for logging (the Zend logger) and how that hard-coded dependency can be refactored out using one of two methods: either a custom interface or one described elsewhere. Getting back to "provide", he lists some reasons why he thinks that defining the interface itself in the Composer configuration is a good idea. These include:

  • Strictly speaking (as in, would the code compile), the code from the library itself [...] just needs the LoggerInterface (which happens to be in the psr/log package).
  • By depending on an implementation package, you basically undo any effort you made to depend on abstractions and not on concretions.
  • Some day, someone may decide to introduce another virtual package, called the-real-psr/log-implementation.
  • The notion of an "implementation package" is really vague. What does it mean for a package to be an implementation package.

Each of the reasons has a bit of description to go along with it. He also points out an interesting example where the package actually knows about existing virtual package, the DoctrinePHPCRBundle and its use of "jackalope" and "phpcr".

0 comments voice your opinion now!
composer dependency inversion provide configuration interface

Link: http://php-and-symfony.matthiasnoback.nl/2014/10/composer-provide-and-dependency-inversion/

SitePoint PHP Blog:
Using the Google Analytics API with PHP Logging In
October 02, 2014 @ 09:47:08

The SitePoint PHP blog has a new tutorial posted from Younes Rafie showing you how to use the Google Analytics API from PHP (part one of a series) using the Google PHP API client library to make the connection.

In this series, we're going to see how we can use the Google Analytics API to interact with our Google Analytics data via PHP. [...] In this article we're going to build an app that looks like Google Analytics Explorer, but to make it short, we're going to limit the functionality and discuss how we can extend our demo.

He starts with an overview of the different parts of the Google Analytics APIs including the metadata and real-time reporting systems. In the tutorial he'll be combining several of these to provide all the data needed. After walking you through the creation of a Google developer account, he starts in on the code. With credentials in hand and the library installed via Composer, he shows how to make the connection, check if it's logged in and makes a simple "home" controller that handles the login and OAuth validation process.

0 comments voice your opinion now!
google analytics api login oauth composer tutorial library

Link: http://www.sitepoint.com/using-google-analytics-api-php-logging/

Peter Petermann:
Composer & Virtual Packages
September 30, 2014 @ 13:27:36

Peter Petermann has an interesting post he's added to his site describing a lesser known feature of the Composer package manager: virtual package support.

A few days ago i stumbled over a "virtual package" on packagist - and found it to be a feature that i was actually missing in composer. Turns out, composer can do it, its just not so well documented. So what is this about? Virtual packages allow you to have a more loose dependency. Rather than depending on a specific package, you depend on a virtual one, which can be fulfilled by all packages that provide the virtual one.

He includes a few examples to help illustrate the point of using virtual packages. The first describes an application that wants to use the PSR-4 logger structure but depends on "log-implementation" (a virtual package) rather than the "psr/log" package. The key is in using the "provide" keyword in the Composer configuration. His other two examples expand on this a bit, one showing the use of the "provide" keyword to define the relationship and the other of an actual application making use of this package.

0 comments voice your opinion now!
composer virtual package provide library tutorial psr log

Link: http://devedge.wordpress.com/2014/09/27/composer-and-virtual-packages/

Engine Yard Blog:
Engine Yard Is Sponsoring Composer
August 27, 2014 @ 11:50:24

According to this new post to the EngineYard blog, they're announcing their formal sponsorship of a tool that has revolutionized the way PHP libraries and packages are used: Composer.

Open source is a big deal at Engine Yard. Originally founded as a Ruby company, most of our early work was in the Ruby community. Since acquiring Orchestra in 2011, we have been investing in the PHP commmunity and are continually on the look out for ways to give back. So I'm thrilled to be sharing the latest news on this front. [...] We care a lot about PHP and we want to continue our mission of supporting key pieces of infrastructure in the communities we serve.

Their support is coming in the form of a community grant provided over the next twelve months. This fund ($15k) will provide support for the continued development of the project and Nils Adermann, one of Composer's principal developers.

0 comments voice your opinion now!
engineyard sponsor composer communitygrant project

Link: https://blog.engineyard.com/2014/engine-yard-sponsoring-composer

Brandon Savage:
What's in your Composer file?
August 14, 2014 @ 10:36:24

In his latest post Brandon Savage asks you, the Composer users out there, if you know exactly what's in your "composer.json" file. If you're not a Composer user already, he also introduces you to the tool and what it can do for you and your applications.

During the recent Crafting Code Tour, Paul Jones would ask people who was currently using Composer. It was a rare night that more than half an audience raised their hands, meaning that the best invention in the PHP world in the last three years is still not being widely used by everybody. I want to share a bit about how to get started with Composer, and why you should care in the first place.

He starts with the brief overview of what Composer is and how it works with the configuration file to pull in packages and make them available via autoloading. He shows how to download and install the tool and includes a simple "composer.json" file that installs the Monolog package. He also includes his own answer to the "what's in your file" question, showing a more advanced configuration requiring several packages and defining custom autoloading and executable directories.

0 comments voice your opinion now!
composer package introduction example composerjson

Link: http://www.brandonsavage.net/whats-in-your-composer-file/

PHPClasses.org:
Lately in PHP Podcast #48 - To TDD or Not TDD?
June 27, 2014 @ 11:38:37

On the PHPClasses.org site today Manuel Lemos has released the latest episode in their "Lately in PHP" podcast series: Episode #48 - To TDD or Not TDD?.

Lately the debate about whether you should use TDD or not in all software projects all the time has been very intense. [...] They also talked about the upcoming end of life release of PHP 5.3, getting information of parameter type hinting with reflection, using object methods on native data types, security problems of OAuth implementations, and the built-in support of Composer to access password protected repositories.

You can listen to this latest episode either through the in-page audio player, by downloading the mp3 or you can watch the live recording over on the PHPClasses YouTube playlist. A transcription of the recording is also provided as well as links to some of the topics mentioned.

0 comments voice your opinion now!
phpclasses latelyinphp ep48 podcast tdd typehint oauth security composer

Link: http://www.phpclasses.org/blog/post/239-To-TDD-or-Not-TDD--Lately-in-PHP-podcast-episode-48.html

Acquia Blog:
5 PHP Components every Drupal 8 Developer should know Part 1 - Composer
June 25, 2014 @ 12:04:23

On the Acquia blog there's a new post from Kris Vanderwater, Developer Evangelist, starting off a series of "Five PHP Components Every Drupal 8 Developer Should Know". In this first post he covers something that's more of a tool to deal with components and dependencies - working with Composer.

Drupal 8 has made a lot of changes. Architectural and technical changes abound, but Drupal 8 has also brought social changes. We're not really feeling the full effects of those changes quite yet, but with time, I believe the implications of Drupal 8's new direction will have an amazing impact for the good of our community. A big part of those changes was the decision to adopt outside code. [...] Interoperability is the driving force of this renaissance and that interoperability has been fueled by a combination of: [a few things including] the timely appearance of a tool known as Composer.

He briefly introduces the tool to those not familiar with it and its purpose. He links to some of the installation instructions, both global and local to a single project. He includes an example "composer.json" (to install the popular Guzzle HTTP tool) and running the "install" command. He gets into the directory structure and files that are created as a part of the installation. He also looks more deeply at the classmap file and how that relates to the files downloaded.

0 comments voice your opinion now!
acquia component introduction drupal8 top5 composer

Link: https://www.acquia.com/blog/5-php-components-every-drupal-8-developer-should-know-part-1-composer

Jordi Boggiano:
Authentication management in Composer
May 28, 2014 @ 11:07:35

Jordi Boggiano has posted about a new feature in Composer, the popular dependency manager for PHP, around the handling of authentication information.

Up until today if you run a home-grown package repository serving private packages it was quite a pain to use with Composer. You did not have efficient way to password-protect the repository except by inlining the password in the composer.json or by typing the username/password every single time. With the merge of PR#1862 and some further improvements you can now remove credentials from your composer.json!

The new functionality allows for the external storage of the credentials in a file, either globally of in one relative to the repository. He also includes the command you can use to configure and set these username/password combinations and have them stored in the "auth.json" file.

0 comments voice your opinion now!
composer authentication management username password authjson json

Link: http://seld.be/notes/authentication-management-in-composer

Clear Code Blog:
How to Manage Your Application Setup with Composer
May 27, 2014 @ 11:50:55

On the Clear Code blog today there's an article posted showing you how to manage your application with Composer, the PHP dependency manager that's taken the PHP community by storm.

Composer is a dependency management tool for PHP based projects. It allows you to declare, install, and then manage all of your dependencies in your project. Right, so you can manage the libraries that your project requires in order to work. But is that all you can really do with Composer? Definitely not! In fact, I believe this is a very small part of Composer and its possibilities. In this article, I'll try to show you how Composer can be used for performing more complex tasks in PHP based projects.

He shows how to set up a system where even the base parts of the applications become dependencies and can be built up as a part of the Composer install. He includes an example of pulling from a private version control source and the matching "composer.json" file the repository will need. He also includes the composer commands to get the install up and running as well as a warning about handling credentials as a part of the execution.

0 comments voice your opinion now!
tutorial application dependency management composer

Link: http://clearcode.cc/2014/05/manage-application-setup-composer/


Community Events





Don't see your event here?
Let us know!


package list community language release framework symfony library interview introduction series opinion bugfix laravel deployment voicesoftheelephpant podcast install tips api

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework