<?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>Sun, 12 Feb 2012 20:54:10 -0600</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Marcelo Gornstein's Blog: Writing PHP applications with Doctrine2 as ORM and Ding as DI container]]></title>
      <guid>http://www.phpdeveloper.org/news/17469</guid>
      <link>http://www.phpdeveloper.org/news/17469</link>
      <description><![CDATA[<p>
In a recent post <i>Marcelo Gornstein</i> takes a look at <a href="http://marcelog.github.com/articles/php_applications_with_doctrine2_orm_and_ding_di_container.html">using dependency injection with Doctrine2</a> using his <a href="http://marcelog.github.com/Ding">Ding</a> container.
</p>
<blockquote>
This article will show how we can develop software in php with a nifty design and architecture, and very much like other languages like java, using an ORM and an AOP, DI, Events container. I will assume you've read (or at least took a quick look) at <a href="http://marcelog.github.com/articles/creating_php_cli_standalone_portable_applications_with_pear_dependencies.html">this article</a> that explains the tree layout used throughout the code, and that you have some basic knowledge of <a href="http://www.doctrine-project.org/">Doctrine2</a> and used it before on your own.
</blockquote>
<p>
He starts with the result - an easy to use, self-contained (and decoupled) system for accessing the Doctrine2 instance. It's event-driven and uses <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">Aspect-oriented programming</a> to mange interactions between components (or as he calls them "beans"). Code is included for the entire process for a logger, the User entity, entity manager, user repository and transactional aspect. You can find the complete source for his example <a href="https://github.com/marcelog/Doctrine2-Ding-Example">on his github account</a>.
</p>]]></description>
      <pubDate>Tue, 31 Jan 2012 08:59:18 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Ade Slade's Blog: Integrating Zend Framework 1 and Pimple]]></title>
      <guid>http://www.phpdeveloper.org/news/17414</guid>
      <link>http://www.phpdeveloper.org/news/17414</link>
      <description><![CDATA[<p>
In <a href="http://adeslade.co.uk/post/integrating-zend-framework-1-and-pimple">this new post</a> to his blog <i>Ade Slade</i> shows how to integrate the <a href="http://pimple.sensiolabs.org/">Pimple</a> lightweight dependency injection container with a Zend Framework application.
</p>
<blockquote>
This post will describe a way to integrate Zend Framework 1 and <a href="http://pimple.sensiolabs.org/">Pimple</a>. A complete working version of the code is available on <a href="https://github.com/adeslade/Zend-Framework-Pimple">github</a>. 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.
</blockquote>
<p>
He shows how to add a resource plugin into the Pimple container - an entity manager that's part of <a href="http://doctrine-project.org">Doctrine</a>. 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 <a href="https://github.com/padraic/mockery">Mockery</a>).
</p>]]></description>
      <pubDate>Wed, 18 Jan 2012 13:11:56 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[NetTuts.com: Zend Framework from Scratch - Models and Integrating Doctrine ORM]]></title>
      <guid>http://www.phpdeveloper.org/news/17390</guid>
      <link>http://www.phpdeveloper.org/news/17390</link>
      <description><![CDATA[<p>
NetTuts.com has posted a second tutorial in their series focusing on the Zend Framework today. In <a href="http://net.tutsplus.com/tutorials/php/zend-framework-from-scratch-models-and-integrating-doctrine-orm/">this latest article</a> they focus on integrating the powerful <a href="http://doctrine-project.org">Doctrine</a> ORM with a Zend Framework application.
</p>
<blockquote>
Ready to take your PHP skills to the next level? In this new "From Scratch" series, we'll focus exclusively on <a href="http://framework.zend.com/">Zend Framework</a>, a full-stack PHP framework created by Zend Technologies. This second tutorial on our series is entitled "Models and Integrating Doctrine ORM".
</blockquote>
<p>
They continue on from their <a href="http://net.tutsplus.com/tutorials/php/zend-framework-from-scratch/">previous tutorial</a> to talk about what models are (with an example involving "bankers"). They also show how to use the Zend Framework "zf" command line tool to configure your database settings, set up the tables and download/bootstrap the Doctrine code. The include the code to create some simple models and how to use them to create and update records in your database. You can grab all of the sample code for their examples from <a href="https://github.com/nikkobautista/The-Next-Social">The Next Social's github repository</a>.
</p>]]></description>
      <pubDate>Fri, 13 Jan 2012 10:58:00 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPBuilder.com: An Early Look at Zend Framework 2.0]]></title>
      <guid>http://www.phpdeveloper.org/news/17070</guid>
      <link>http://www.phpdeveloper.org/news/17070</link>
      <description><![CDATA[<p>
On PHPBuilder.com <i>Jason Gilmore</i> has posted a <a href="http://www.phpbuilder.com/columns/zendframework2/zend_framework2_10-27-2011.php3">first peek at Zend Framework 2</a>, an upcoming reworking of the popular framework with PHP 5.3-centric features.
</p>
<blockquote>
Version 2.0 seeks to improve upon the current release in a number of ways, focusing on making it easier to get started using the framework, improving performance, and fully embracing the latest PHP language enhancements made available to version 5.3. [...] Although the official release won't be out for several more months, it never hurts to take an early look at what the future holds for a technology used by countless PHP developers around the globe. In this article I'll present a meandering introduction to the key version 2.0 features that I find particularly compelling.
</blockquote>
<p>
He starts with a brief tutorial on getting the latest version of ZF2 from the <a href="https://github.com/zendframework/">git repository</a> and creating  basic project. The changes in the framework have fallen into a "rewrite only where it makes sense" mentality and changes have really only been made transparently to the backend or as new features/components like module management and Doctrine 2 integration. He also points out a few resources you can use to keep up to date on the latest from the framework including <a href="http://git.zendframework.com/?a=summary&p=zf">the changelog</a>, <a href="http://zend-framework-community.634137.n4.nabble.com/ZF-Contributor-f680267.html">mailing list</a> and the <a href="http://framework.zend.com/zf2/blog">ZF2 blog</a>.
</p>]]></description>
      <pubDate>Tue, 01 Nov 2011 11:40:52 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: Hardening PHP: SQL injection - Complete walkthrough]]></title>
      <guid>http://www.phpdeveloper.org/news/16711</guid>
      <link>http://www.phpdeveloper.org/news/16711</link>
      <description><![CDATA[<p>
On DZone.com today there's a new post from <i>Krzysztof Kotowicz</i> sharing a presentation of his about <a href="http://php.dzone.com/news/hardening-php-sql-injection">protecting your application from SQL injection</a>.
</p>
<blockquote>
The materials teach how to use prepared statements, how to escape and write secure stored procedures. Many PHP projects are covered - <a href="http://php.net/manual/en/book.pdo.php">PDO</a>, <a href="http://propel.phpdb.org/trac/">Propel</a>, <a href="http://www.doctrine-project.org/">Doctrine</a>, <a href="http://framework.zend.com/">Zend Framework</a> and <a href="http://pear.php.net/MDB2/">MDB2</a>. Multiple gotchas and caveats are included. I discuss why escaping is usually the wrong choice, which practices to avoid or follow and how stored procedures sometimes offer no protection at all.
</blockquote>
<p>
The presentation (as <a href="http://www.slideshare.net/kkotowicz/sql-injection-complete-walktrough-not-only-for-php-developers">posted to Slideshare</a>) starts with some of the basics - what SQL injection is and an example of how it could be used to bypass security. He covers how to use prepared statements in each of the technologies (with code snippets), methods for escaping data and how to create stored procedures that are protected from the same threats.
</p>]]></description>
      <pubDate>Fri, 12 Aug 2011 09:20:13 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Leaseweb Labs Blog: Tuning Zend framework and Doctrine]]></title>
      <guid>http://www.phpdeveloper.org/news/16635</guid>
      <link>http://www.phpdeveloper.org/news/16635</link>
      <description><![CDATA[<p>
On the Leaseweb Labs blog there's a recent post looking and some of the things you can do to <a href="http://www.leaseweblabs.com/2011/07/tuning-zend-framework-and-doctrine/">optimize Zend Framework and Doctrine</a> when used together for database access.
</p>
<blockquote>
In principle, the combination of Zend Framework with Doctrine is not too difficult. But first let's talk about the preparations. According to the author of Zend Framework, the default file structure of project can be a bit more optimal.
</blockquote>
<p>
They start by describing this optimized file structure (moving the models out of the modules and into the library) and what you'll need to change in Doctrine's configuration to make this work. The post also includes examples of what the larger config should look like when the changes are made. They show how to extend the default Doctrine CLI tool to make a custom "sandbox" instance and show some tuning you can do on the Zend Framework side so it can optimally work with the new models.
</p>]]></description>
      <pubDate>Tue, 26 Jul 2011 12:35:03 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Jigal Sanders' Blog: A first look at Doctrine 2.1]]></title>
      <guid>http://www.phpdeveloper.org/news/16622</guid>
      <link>http://www.phpdeveloper.org/news/16622</link>
      <description><![CDATA[<p>
In a new post to his blog <i>Jigal Sanders</i> shares some of his experience in <a href="http://blog.sanders-albek.nl/2011/07/21/a-first-look-at-doctrine-2-1/">working with Doctrine 2.1</a> in a Zend Framework-based (1.11.9) application for his database interface needs.
</p>
<blockquote>
I hadn't been using Doctrine for a while and decided to pick it up two weeks ago, as we wanted to see if we can implement it for our CMS at our office. So I setup a clean installation of the zend framework (1.11.9) and tried tried to implement Doctrine. The main goal was to see if we can reverse engineer existing databases and then start doing some queries.
</blockquote>
<p>
There were three things he found in the process that caused a few issues:
</p>
<ul>
<li>A confusing set of terms and features that weren't explained well enough to know their use
<li>Getting things like autoloaders working with the Zend Framework to make things work well together
<li>A potential bug with the "name" property on an object and some automatic namespacing Doctrine tries to do
</ul>
<blockquote>
There are already a lot of resources available on the Internet. I have looked at various configurations, like for example the '<a href="https://github.com/guilhermeblanco/ZendFramework1-Doctrine2/tree/master/library/Bisna">bisna</a>' project from Guilhere Blanco.  But I keep saying that it's really difficult and has a steep learning curve. Doctrine 1.2 was really simple. Doctrine 2.x is a lot more difficult to get into.
</blockquote>]]></description>
      <pubDate>Fri, 22 Jul 2011 10:33:08 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DZone.com: The era of Object-Document Mapping]]></title>
      <guid>http://www.phpdeveloper.org/news/16568</guid>
      <link>http://www.phpdeveloper.org/news/16568</link>
      <description><![CDATA[<p>
On the PHP on Windows section of DZone.com today <i>Giorgio Sironi</i> has posted about a different sort of object mapping than is usually thought of with databases - <a href="http://css.dzone.com/articles/era-object-document-mapping">object-document mapping</a>.
</p>
<blockquote>
The Data Mapper pattern is a mechanism for persistence where the application model and the data source have no dependencies between each other. [...] But everytime we talk about the Data Mapper pattern, we assume there is a relational database on the other side of the persistence boundary. We always save objects; we always map them to MySQL or Postgres tables; but it's not mandatory.
</blockquote>
<p>
He talks about two projects, <a href="http://www.doctrine-project.org/projects/mongodb_odm">MongoDb_ODM</a> and <a href="http://www.doctrine-project.org/projects/couchdb_odm">CouchDb_ODM</a>, that the Doctrine project is working on to help make working with document-driven databases as simple as the usual ORMs. He includes a brief code snippet showing how the feature will work (hint: a namespace of Document instead of Entity). He lists some of the features - including the usual ORM capabilities, support for collections, cascade of persistence - and where you can get the latest code for it (from <a href="https://github.com/doctrine/couchdb-odm.git">github</a> and <a href="pear.doctrine-project.org/DoctrineMongoDBODM-1.0.0BETA3">PEAR</a>
</p>]]></description>
      <pubDate>Fri, 08 Jul 2011 11:45:46 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Test.ical.ly Blog: PHP 5.4 with traits, Doctrine 2.2 and then Symfony3?]]></title>
      <guid>http://www.phpdeveloper.org/news/16493</guid>
      <link>http://www.phpdeveloper.org/news/16493</link>
      <description><![CDATA[<p>
On the Test.ical.ly blog there's <a href="http://test.ical.ly/2011/06/20/php-5-4-with-traits-doctrine-2-2-and-then-symfony3/">a new post</a> looking ahead to the next release of PHP, 5.4, and what it could mean for some of the popular tools out there - specifically Symfony and Doctrine.
</p>
<blockquote>
It shouldn't be long until the first alpha version of PHP 5.4 will be released and with it there will be a lot of new features such as array dereferencing and traits to name but a few. What does that mean to the roadmaps of Doctrine and Symfony?
</blockquote>
<p>
He mentions the experiments that are proposed on the Doctrine project that could be one of the major driving forces behind Doctrine 3. He points out that, as long as Symfony stays non-PHP 5.4-only, users will still have the choice of Doctrine 2 or 3. There are two issues he points out, though, that could cause problems for both projects - the choices Symfony makes in things like its quickstart guide and the DoctrinBundle vs Doctrine3Bundle situation that could come up.
</p>]]></description>
      <pubDate>Mon, 20 Jun 2011 12:07:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Symfony Blog: Symfony2: Getting easier]]></title>
      <guid>http://www.phpdeveloper.org/news/16272</guid>
      <link>http://www.phpdeveloper.org/news/16272</link>
      <description><![CDATA[<p>
On the Symfony blog there's a new post about how Symfony2 is "getting easier" thanks to <a href="http://symfony.com/blog/symfony2-getting-easier">some recent changes</a> with improved error handling and simpler configuration options.
</p>
<blockquote>
With the release of the first beta approaching fast, our main focus has switched from adding new features to polishing existing ones. [...] Recently, Ryan and I have spent our time tweaking error messages, simplifying the code and the configuration, adding more documentation, and making things more consistent throughout the framework. The goal is to ease the learning curve and make things that people will need on a day to day basis simpler.
</blockquote>
<p>
The changes they've made include three updates - better <a href="http://twig-project.org">Twig</a> error messaging, better configuration error messaging and some helpful changes to the Doctrine configuration to allow for auto-mapping of connections when the traditional one-database setup is used.
</p>]]></description>
      <pubDate>Fri, 29 Apr 2011 10:09:17 -0500</pubDate>
    </item>
  </channel>
</rss>

