<?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 14:54:05 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Michael Kimsal: Why do no almost no web frameworks come with any authentication/authorization?]]></title>
      <guid>http://www.phpdeveloper.org/news/19221</guid>
      <link>http://www.phpdeveloper.org/news/19221</link>
      <description><![CDATA[<p>
In a new post to his site <i>Michael Kimsal</i> poses an interesting question about something he's noticed in several frameworks - and not just PHP ones: there seems to be a <a href="http://michaelkimsal.com/blog/why-do-no-almost-no-web-frameworks-come-with-any-authenticationauthorization-functionality/">lack of authentication/authorization functionality</a> coming bundled in.
</p>
<blockquote>
Why do almost no web frameworks provide any default authentication/authorization functionality, with default examples of best practices for common use cases.  The standard response I've gotten for years was/is "well, everyone's needs for authentication are different". No, they are not. A (very?) large majority of web applications (which is what most web frameworks are used to build), require some form of user login and authorization management, and often self-registration, dealing with lost passwords, etc.
</blockquote>
<p>
He points out that by not having something a user can immediately deploy that's been well tested and relatively risk-free, it can introduce security holes as a developer is "left to fend for themselves". He suggests that the "not everyone's the same" mentality that seems to go with authentication/authorization isn't as valid as once thought. He does point out that both <a href="http://symfony.com/">Symfony2</a> and <a href="http://framework.zend.com/">Zend Framework 2</a> come with ACL functionality, but no common user handling. He mentions ones in a few other tools used in other languages too like <a href="https://github.com/plataformatec/devise">Devise</a> in Ruby, <a href="http://grails.org/plugin/spring-security-core">Spring Security</a> in Grails and <a href="http://msdn.microsoft.com/en-us/library/yh26yfzy(v=vs.100).aspx">a membership system</a> in ASP.NET.
</p>]]></description>
      <pubDate>Fri, 22 Feb 2013 10:14:08 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Understanding the Observer Pattern]]></title>
      <guid>http://www.phpdeveloper.org/news/17578</guid>
      <link>http://www.phpdeveloper.org/news/17578</link>
      <description><![CDATA[<p>
PHPMaster.com has a new tutorial looking at another popular design pattern, the <a href="http://phpmaster.com/understanding-the-observer-pattern/">Observer pattern</a>, and sharing some example code putting it to use. (Their other design pattern articles include ones on <a href="http://phpmaster.com/understanding-the-command-design-pattern/">command</a> and <a href="http://phpmaster.com/understanding-the-factory-method-design-pattern/">factory</a> patterns).
</p>
<blockquote>
In this article I'll show you how to implement the Observer Pattern. You'll learn how various classes in the pattern relate to one another as subject and observers, how the subject notifies observers of a change in its state, and how to identify scenarios where it would be suitable to use the Observer Pattern in your own code.
</blockquote>
<p>
The introduce the pattern by using an abstract "Observer" and "Subject" (that defines "attach", "detach", "getState", "setState", "notify" and "getObservers" methods) observer classes to coordinate the attached classes. They extend these classes with "Auth" and "Auth_ForumHook" show how to attach the "Auth_ForumHook" classes to the main "Auth" observer manager and change the state of the observer to notify it of an update.
</p>
<p>
You can find a more detailed explanation of the Observer pattern <a href="http://en.wikipedia.org/wiki/Observer_pattern">on Wikipedia</a>.
</p>]]></description>
      <pubDate>Thu, 23 Feb 2012 11:39:10 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Leaseweb Labs Blog: Migration to Symfony2 continued]]></title>
      <guid>http://www.phpdeveloper.org/news/17525</guid>
      <link>http://www.phpdeveloper.org/news/17525</link>
      <description><![CDATA[<p>
On the LeaseWeb Labs blog there's a continuation from a previous post about migrating your Symfony1 application over to Symfony2. In the <a href="http://phpdeveloper.org/news/17299">first part</a> of this series of posts, <i>Stefan Koopmanschap</i> talked about wrapping your code to make it work. In <a href="http://www.leaseweblabs.com/2012/02/migration-to-symfony2-continued/">this second post</a>, <i>Maurtis van der Schee</i> tackles two issues <i>Stefan</i> mentioned - performance problems and handling authorization/authentication.
</p>
<blockquote>
On December 21, 2011 Stefan Koopmanschap wrote an excellent article on this blog titled "Painless (well, less painful) migration to Symfony2." [...] We were very much inspired by his passionate elucidation and we were fully convinced of the urge to start migrating to Symfony2 as soon as possible. However, he also provided us with a "A word of caution" about 2 things: performance and authentication/authorization. This might get some people worried, but not us: it challenged us to find a solution for those two open issues.
</blockquote>
<p>
They explain why these two things are a problem and some of their solutions they've created - a .htaccess for routing and manually replicating the Symfony2 session in the Symfony1 code. Included in the post are the rewrite rules and code to make these two things happen (and a small configuration change to make them work).
</p>]]></description>
      <pubDate>Thu, 09 Feb 2012 11:51:59 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Oracle Technology Network: PHP Web Auditing, Authorization and Monitoring with Oracle Database]]></title>
      <guid>http://www.phpdeveloper.org/news/15120</guid>
      <link>http://www.phpdeveloper.org/news/15120</link>
      <description><![CDATA[<p>
On the Oracle Technology Network today there's <a href="http://www.oracle.com/technetwork/articles/dsl/php-web-auditing-171451.html">a new article</a> from <i>Chris Jones</i> about using the client identifier in the OCI8 PHP-to-Oracle connections to help with auditing, profiling and monitoring your Oracle database usage.
</p>
<blockquote>
This "client identifier" can be used by Oracle Database to distinguish between individual web application users who all connect to the database using one common set of database credentials. For example, every page in a web site might physically connect to the database as the same database user PHPUSER. If two different people 'Chris' and 'Alison' are using the site, these two user names can be set as their respective client identifiers and be passed into the database.
</blockquote>
<p>
He shows how to set these client identifiers via the <a href="http://www.php.net/manual/en/function.oci-set-client-identifier.php">oci_set_client_identifier</a> function (and how you could use it in older versions of the OCI8 driver too). He provides a sample application to help you get a good overall picture complete with SQL to load the database and a basic login page to submit and pull that data back out.
</p>
<p>
He moves over to the database side where he talks about enabling auditing, pulling out the logged application ID and how to use this identifier to restrict access via a Virtual Private Database on the Oracle side.
</p>]]></description>
      <pubDate>Mon, 13 Sep 2010 14:10:25 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Tobias Schlitt's Blog: Webdav authentication, authorization and locking]]></title>
      <guid>http://www.phpdeveloper.org/news/11698</guid>
      <link>http://www.phpdeveloper.org/news/11698</link>
      <description><![CDATA[<p>
In a new post <i>Tobias Schlitt</i> <a href="http://schlitt.info/opensource/blog/0703_webdav_authentication_authorization_locking.html">looks at a part</a> of the recently released <a href="http://www.phpdeveloper.org/news/11673">eZ Components version 2008.2</a> that includes, among other things, Webdav support.
</p>
<blockquote>
My tasks for 2008.2 were dedicated to the Webdav component. This package allows you to easily integrate <A href="http://en.wikipedia.org/wiki/WebDAV">WebDAV</a> access features into your applications. With the earlier 2007.2 release, this component was born. By then, it supported just rudimentary WebDAV features (compliance class 1) and we focused on its architecture to make it as flexible as possible.
</blockquote>
<p>
He explains how a commonly requested feature - locking - was implemented in the component. You can find out more about the feature/component in <a href="http://ezcomponents.org/resources/articles/article-2009-01-06-webdav-locking">this article</a> from <i>Tobias</i> on the eZ Components website.
</p>]]></description>
      <pubDate>Thu, 08 Jan 2009 08:44:16 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Eclipse.org: PHPIDE Code is Currently Undergoing Legal Review]]></title>
      <guid>http://www.phpdeveloper.org/news/5385</guid>
      <link>http://www.phpdeveloper.org/news/5385</link>
      <description><![CDATA[<p>
According to <a href="http://www.eclipse.org/newsportal/article.php?id=112&group=eclipse.tools.php#112">this post</a> from the Eclipse site (mailing list), the PHPIDE code for Zend's project is undergoing a legal review and is awaiting a "legal authorization code".
</p>
<p>
There's not much more information than that in the main post, but several of the commentators are wondering if this will cause a delay for the next code release, if it will affect the Zend Debugger as well, and if it was an expected legal review.
</p>
<p>
There's no response yet from <i>Guy Harpaz</i>, the original poster of the thread, but we'll keep you updated.
</p>]]></description>
      <pubDate>Wed, 17 May 2006 06:20:47 -0500</pubDate>
    </item>
  </channel>
</rss>
