<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Fri, 24 May 2013 01:33:44 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[PHPMaster.com: Listing Packages on Packagist for Composer]]></title>
      <guid>http://www.phpdeveloper.org/news/19501</guid>
      <link>http://www.phpdeveloper.org/news/19501</link>
      <description><![CDATA[<p>
<a href="http://getcomposer.org">Composer</a> has changed how PHP developers work with external libraries and packages in even just the small amount of time its been around. One of the keys to its use, though, is getting your code listed on the <a href="http://packagist.org">Packagist</a> site for easy requesting. In <a href="http://phpmaster.com/listing-packages-on-packagist-for-composer/">this new tutorial</a> on PHPMaster.com, they walk you through doing just that.
</p>
<blockquote>
You've created an awesome library, and now you're ready to open source it and share it with the world. Hopefully someone else can benefit from your work, and maybe you'll even receive a bug report or patch to make the library even better. But none of that can happen unless people can find it… and the modern way is increasingly becoming through Composer and Packagist. In this article I'll show you what information is needed in your composer.json file and how to list your library on Packagist so others can easily find it.
</blockquote>
<p>
He talks some about the "composer.json" file for your project and talks some about the content that has to be there for Packagist to be able to pick it up correctly. He then shows you how to go over to the Packagist website, log in and add a package to their repository. It then shows you where on Github you'll need to go to set up a Service Hook to talk back to Packagist when a new version is deployed.
</p>
Link: http://phpmaster.com/listing-packages-on-packagist-for-composer]]></description>
      <pubDate>Wed, 24 Apr 2013 11:57:49 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Matthias Noback: Experiences with PHP Open Source Software in a Symfony-Friendly Environment]]></title>
      <guid>http://www.phpdeveloper.org/news/18746</guid>
      <link>http://www.phpdeveloper.org/news/18746</link>
      <description><![CDATA[<p>
<i>Matthias Noback</i> has a new post today sharing some of his <a href="http://php-and-symfony.matthiasnoback.nl/2012/11/experiences-with-php-open-source-software-in-a-symfony-friendly-environment/">experiences working with Open Source software</a>, specifically as it relates to this dealings with a "Symfony-friendly environment".
</p>
<blockquote>
These days, good PHP object-oriented libraries are all around and easily available. To me, it is actually thrilling to be part of this flourishing community, while working with Symfony2 and blogging about the Framework, the Components and their neighbors (like Silex). [...] Still, to me, contributing felt like too big a step to take right now. Until a few weeks ago, when I was looking for something I needed (a PHP client for the Microsoft Translator API) and could not find a decent solution. I decided to <a href="https://github.com/matthiasnoback/microsoft-translator">make it myself</a>, and share it online. 
</blockquote>
<p>
He shares his "checklist" of steps he followed to get the library up and working (less about the library and more about the process):
</p>
<ul>
<li>Write the code
<li>Initialize a Git repository
<li>Add a composer.json file
<lI>Add unit tests
<li>Make it open source and developer friendly
<li>Push your code to GitHub
<li>Register your project at packagist.org
<li>Register the Packagist Service Hook
<li>Versioning
<li>Continuous integration using Travis CI
</ul>
<p>
He also suggests that, at least at the outset, you skip some of your tests that might rely on external data sources/resources (so the build can start as green on Travis) then coming back and refactoring to mock things out correctly. It might look like an intimidating list for a beginner, but it's a great process to follow to have a robust, effective development/deployment process.
</p>]]></description>
      <pubDate>Wed, 14 Nov 2012 11:24:19 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Including PHP libraries via Composer]]></title>
      <guid>http://www.phpdeveloper.org/news/17735</guid>
      <link>http://www.phpdeveloper.org/news/17735</link>
      <description><![CDATA[<p>
On DZone.com there's a new post from <i>Giorgio Sironi</i> about <a href="http://css.dzone.com/articles/including-php-libraries">using Composer to install packages/libraries</a>:
</p>
<blockquote>
The main package source used by Composer seems more similar to the usage of git submodules at a first glance: a list of dependencies on other projects is specified and stored under version control, and upon a checkout these projects are grabbed directly from their repositories.
</blockquote>
<p>
He talks about what problem the project solves, what issues he's found with it so far (the amount of stuff downloaded for each dependency, the single point of failure of the one Packagist repository) and shows how to get it installed and creating a sample "composer.json" file for an example project.
</p>]]></description>
      <pubDate>Tue, 27 Mar 2012 09:02:55 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Phil Sturgeon's Blog: Packages: The Way Forward for PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17636</guid>
      <link>http://www.phpdeveloper.org/news/17636</link>
      <description><![CDATA[<p>
In <a herf="http://philsturgeon.co.uk/blog/2012/03/packages-the-way-forward-for-php">this new post</a> to his blog <i>Phil Sturgeon</i> talks about what he (and apparently several others) think is the "way forward for PHP" to make it a better language and ecosystem - packages.
</p>
<blockquote>
What is a package? A package is a piece of reusable code that can be dropped into any application and be used without any tinkering to add functionality to that code. [...] Most package systems also allow for something called dependencies. [...] This is how most modern programming languages work, but to make a generalisation: PHP developers hate packages. Why? Well while other languages have great systems like <a href="http://www.cpan.org/">CPAN</a> for Perl, <a href="http://rubygems.org/">Gems</a> for Ruby, PIP, PHP has had a terrible history with package management going back years.
</blockquote>
<p>
He talks about one of the main current packaging systems, <a href="http://pear.php.net">PEAR</a>, and how, despite its attempts, it just hasn't seen the adoption the package management of other languages has. <i>Phil</i> makes a recommendation that is slowly becoming more and more popular in the PHP community - building "unframeworks". These sets of reusable components (similar to the ideas behind <a href="http://auraphp.github.com/">Aura</a>, <a href="http://symfony.com">Symfony</a> and <a href="http://framework.zend.com/zf2">Zend Framework 2</a>) are designed to be dropped in and used without the dependencies of the frameworks they live in. He points to the <a href="http://getcomposer.org/">Composer</a>/<a href="http://packagist.org/">Packagist</a> dynamic duo as a way through all of the current packaging issues - a simple way to make any project an installable package just by adding a configuration file.
</p>]]></description>
      <pubDate>Wed, 07 Mar 2012 08:29:57 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Alessandro Nadalin's Blog: Managing PHP dependencies with composer]]></title>
      <guid>http://www.phpdeveloper.org/news/17474</guid>
      <link>http://www.phpdeveloper.org/news/17474</link>
      <description><![CDATA[<p>
<i>Alessandro Nadalin</i> has a new post to his blog looking at the <a href="https://github.com/composer/composer">Composer</a> project and using it to manage packages and dependencies in PHP applications.
</p>
<blockquote>
Managing dependencies between pieces of software, in PHP, hasn't always been a relief: we had <a href="http://pear.php.net">PEAR</a> and <a href="http://pecl.php.net">PECL</a> with their workflows and problems while, in other ecosystems, the solution to this problem has been solved in better ways, like NodeJS's <a href="http://npmjs.org/">NPM</a>.
</blockquote>
<p>
He takes a first look at the tool, describing how to get it set up, create a sample configuration (describing each section inside it) and an example of the tool's output. He also briefly touches on the <a href="http://packagist.org/">Packagist</a> website/repository and links to the instructions on how to <a href="http://packagist.org/packages/submit">create your own</a>.
</p>]]></description>
      <pubDate>Tue, 31 Jan 2012 13:11:09 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Michael Nitschinger's Blog: Playing with Composer and Lithium]]></title>
      <guid>http://www.phpdeveloper.org/news/17439</guid>
      <link>http://www.phpdeveloper.org/news/17439</link>
      <description><![CDATA[<p>
<i>Michael Nitschinger</i> has a new post to his blog looking at using the popular <a href="http://packagist.org/about-composer">Composer</a> tool for package management <a href="http://nitschinger.at/Playing-with-Composer-and-Lithium">together with Lithium</a> to make dependency management simpler.
</p>
<blockquote>
<a href="http://packagist.org/about-composer">Composer</a> is a command-line tool that helps you manage your application dependencies. It automatically fetches packages, resolves dependencies and is easy to configure. [...] Currently, Lithium doesn't provide Composer packages out of the box, but it's easy to write one.
</blockquote>
<p>
He starts the post with an introduction to using Composer for those new to the tool, then moves quickly into setting up your "composer.json" file to pull in the Lithium updates from their github account. Additionally, he shows how to add a dependency for <a href="http://twig.sensiolabs.org/">twig</a> in the "require" section and pull it down at the same time (with dependencies).
</p>]]></description>
      <pubDate>Tue, 24 Jan 2012 10:20:51 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Nelm.io Blog: Composer: Part 2 - Impact]]></title>
      <guid>http://www.phpdeveloper.org/news/17283</guid>
      <link>http://www.phpdeveloper.org/news/17283</link>
      <description><![CDATA[<p>
In part two of their look at Composer/Packagist, the Nelm.io blog looks at <a href="http://nelm.io/blog/2011/12/composer-part-2-impact/">some of the impact they could have</a> if adopted heavily by the PHP community.
</p>
<blockquote>
In this second part I would like to talk about a few things Composer could do for you, and the PHP community at large, once it is broadly adopted. [...] How can [shared] interfaces be distributed in each project that uses or implements them? This is where I see Composer helping. Composer supports advanced relationships between packages, so to solve this issue you would need three parts.
</blockquote>
<p>
The three parts all revolve around a few different packages (for their specific Caching interface example) - psr/cache-interface, psr/cache and the requiring of these into a framework needing the common interface. He talks some about what this sort of structure has to offer: simpler plugin installation, promotion of good standards, promotion of code reuse and a renewed interest in using PHP.
</p>
<blockquote>
Reinventing the package management wheel is another thing that really should stop. Who am I to say this you ask? It is true, we are building a shiny new wheel as well. Yet I take comfort in the fact that we are trying to build a generic solution which will work for everybody.
</blockquote>]]></description>
      <pubDate>Tue, 20 Dec 2011 11:02:53 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Nelm.io Blog: Composer: Part 1 - What & Why]]></title>
      <guid>http://www.phpdeveloper.org/news/17239</guid>
      <link>http://www.phpdeveloper.org/news/17239</link>
      <description><![CDATA[<p>
On the Nelm.io blog today there's a new post (part one of a series) about <a href="http://nelm.io/blog/2011/12/composer-part-1-what-why/">using Composer and Packagist to manage PHP applications</a> as packages.
</p>
<blockquote>
You may have heard about <a href="https://github.com/composer/composer">Composer</a> and <A href="http://packagist.org/">Packagist</a> lately. In short, Composer is a new package manager for PHP libraries. Quite a few people have been complaining about the lack of information, or just seemed confused as to what it was, or why the hell we would do such a thing. This is my attempt at clarifying things.
</blockquote>
<p>
The briefly explains what the tool(s) do and shows how to set up the configuration on both sides - Composer to manage the packages and the package definition configurations (including meta about the project and any dependencies). He also answers several "why" questions about the need for a package manager, using this versus PEAR, the choice of JSON for config definition and a current status of the project.
</p>]]></description>
      <pubDate>Fri, 09 Dec 2011 13:14:34 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Henri Bergius' Blog: Composer Solves The PHP Code-Sharing Problem]]></title>
      <guid>http://www.phpdeveloper.org/news/17077</guid>
      <link>http://www.phpdeveloper.org/news/17077</link>
      <description><![CDATA[<p>
<i>Henri Bergius</i> has <a href="http://bergie.iki.fi/blog/composer_solves_the_php_code-sharing_problem/">a new post to his blog</a> today about a tool that could help make code reuse across PHP applications a much simpler process. The <a href="http://packagist.org/about-composer">Composer</a> tool (and <a href="http://packagist.org/">Packagist</a>) make setting up packages and dependencies easy.
</p>
<blockquote>
In PHP we've had <a href="http://bergie.iki.fi/blog/php-finally_getting_an_ecosystem/">a lousy culture</a> of code-sharing. Because depending on code from others as been tricky, every major PHP application or framework has practically had to reimplement the whole world. Only some tools, like <a href="https://github.com/sebastianbergmann/phpunit/">PHPUnit</a>, have managed to break over this barrier and become de-facto standards across project boundaries. But for the rest: just write it yourself. But now <a href="http://packagist.org/about-composer">Composer</a>, and its repository counterpart <a href="http://packagist.org/">Packagist</a>, promise to change all that. And obviously new conventions like PHP's <a href="http://www.php.net/manual/en/language.namespaces.rationale.php">namespacing support</a> and the <a href="https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md">PSR-0</a> standard autoloader help.
</blockquote>
<p>
Making a package is as simple as setting up a JSON-based configuration file that names dependencies and package metadata (like name, type, etc). Composer generates an autoloader of its own to handle the loading of your needs based on the dependencies listed as a part of the package. If you'd like more information about Composer or to get the latest version and try it yourself, check out <a href="https://github.com/composer/composer">the project's github repository</a>.
</p>]]></description>
      <pubDate>Wed, 02 Nov 2011 16:28:25 -0500</pubDate>
    </item>
  </channel>
</rss>
