<?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>Sat, 25 May 2013 07:27:46 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Magnolia CMS: Recording: Connect PHP Applications with Magnolia CMS through PHPCR]]></title>
      <guid>http://www.phpdeveloper.org/news/19314</guid>
      <link>http://www.phpdeveloper.org/news/19314</link>
      <description><![CDATA[<p>
<i>Vikram Vaswani</i> passed on a link to a <a href="http://www.magnolia-cms.com/resource-directory/webinars/phpcr.html">recording of a webcast</a> the folks over at Liip did about using the <a href="http://phpcr.github.com/">PHPCR</a> (content repository for PHP) along with the <a href="http://www.magnolia-cms.com">Magnolia CMS</a>. 
</p>
<blockquote>
<a href="http://phpcr.github.com/">PHPCR</a> enables developers to use Magnolia CMS within a PHP application. Common scenarios include editing Magnolia CMS pages and creating or updating CMS page properties through a PHP front-end. With PHPCR and the PHP Jackalope implementation, PHP developers can interface with <a href="http://jackrabbit.apache.org/">Jackrabbit</a>, the <a href="http://www.magnolia-cms.com/magnolia-cms/evaluation/technology.html">JCR implementation in Magnolia CMS</a> and can connect their Web applications with Magnolia CMS without any special Java training or knowledge.
</blockquote>
<p>
You'll need to register to view <a href="http://www.magnolia-cms.com/resource-directory/webinars/phpcr.html">the webinar</a>, but it's an interesting look at integrating this (PHPCR) with a major system to house its content.
</p>]]></description>
      <pubDate>Thu, 14 Mar 2013 11:17:08 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Chris Jones: Excitement! Updated Underground PHP and Oracle Manual is Available for Download]]></title>
      <guid>http://www.phpdeveloper.org/news/18879</guid>
      <link>http://www.phpdeveloper.org/news/18879</link>
      <description><![CDATA[<p>
As <i>Chris Jones</i> has <a href="https://blogs.oracle.com/opal/entry/excitement_updated_underground_php_amp">posted on his Oracle blog</a>, there's been a recent update to the <a href="http://www.oracle.com/technetwork/topics/php/underground-php-oracle-manual-098250.html">Underground PHP and Oracle Manual</a> with a complete refresh of content from more recent versions of the powerful database.
</p>
<blockquote>
The Underground PHP and Oracle Manual is designed to bridge the gap between the many PHP scripting language and the many Oracle Database books available. It contains unique material about PHP's OCI8 extension for Oracle Database, and about other components in the PHP-Oracle ecosystem. It shows PHP developers how to use PHP and Oracle together, efficiently and easily.
</blockquote>
<p>
Updates include new content related to the Oracle XE 11g release and the latest updates to their OCI8 extension for PHP. Other updates include information about using PHP with  Oracle TimesTen, NetBeans and Oracle Tuxedo as well as getting PHP installed on the Oracle Solaris operating system.
</p>]]></description>
      <pubDate>Wed, 12 Dec 2012 10:27:31 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Master Dynamic Content with WordPress Shortcodes]]></title>
      <guid>http://www.phpdeveloper.org/news/18200</guid>
      <link>http://www.phpdeveloper.org/news/18200</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new tutorial for the WordPress users out there looking to <a href="http://phpmaster.com/master-dynamic-content-with-wordpress-shortcodes/">work with dynamic content and shortcodes</a> to make your site easier to use and to bring more content to user's attention.
</p>
<blockquote>
The advantages to using shortcodes are obvious. First and foremost, it allows page designs to become far more unique. It also relieves the website administrator from having to create a large list of custom fields in order to perform basic content insertion. [...] And, finally, shortcodes allow a design to come alive and be truly dynamic and interesting to the end user. Too many WordPress blogs and magazine websites have adhered to the format of a big title, a standard block of text, and comments. That no longer has to be case.
</blockquote>
<p>
They talk about using the "functions.php" file for the custom functionality, who to use them in your posts and how to use them in the theme-specific instances. Using the "add_shortcode" you can relate these custom functions to their codes for both simple and more advanced calls (code included). 
</p>]]></description>
      <pubDate>Mon, 09 Jul 2012 11:47:13 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[P&aacute;draic Brady's Blog: Automatic Output Escaping In PHP & The Real Future Of Preventing XSS]]></title>
      <guid>http://www.phpdeveloper.org/news/18107</guid>
      <link>http://www.phpdeveloper.org/news/18107</link>
      <description><![CDATA[<p>
<i>P&aacute;draic Brady</i> has a new post to his blog about the <a href="http://blog.astrumfutura.com/2012/06/automatic-output-escaping-in-php-and-the-real-future-of-preventing-cross-site-scripting-xss/">state of output escaping in PHP</a> and the steps that need to be taken to help prevent and protect applications from the real threat of cross-site scripting.
</p>
<blockquote>
Automatic escaping has a certain appeal given its goal of removing the need to type escape() all over your templates. Funny thing, though, is that this is basically its one and only advantage. The second claimed goal is to remove a factor of human error (i.e. forgetting to type escape() somewhere), however, this hasn't posed an issue for me in the past where simple analysis of templates can quickly locate such omissions. And no, using automatic escaping does not remove the need to analyse templates for security issues - that's still needed regardless. 
</blockquote>
<p>
He goes on to define what "automatic escaping" is and isn't and how it relates to the context of the information (the same data may not always be filtered the same way in every place). He talks about scope-limited escaping, context-aware escaping and an idea that could help make life easier - a <a href="http://www.w3.org/TR/CSP/">content security policy</a> defining how the client should behave when interpreting HTML.
</p>]]></description>
      <pubDate>Mon, 18 Jun 2012 11:58:22 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[WebSpeaks.in: Extract the Content of Zip file Using PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18088</guid>
      <link>http://www.phpdeveloper.org/news/18088</link>
      <description><![CDATA[<p>
On the WebSpeaks.in site, there's a recent tutorial posted showing how you can <a href="http://www.webspeaks.in/2012/06/extract-content-of-zip-file-using-php.html">extract the contents of a zip file</a> from inside a PHP application.
</p>
<blockquote>
Sometimes you may want the users on your site to upload the zip file and then check what are the contents of that zip file. In this article I will tell you how to extract the contents of the zip file. I temporarily extract the zip files to a directory and then delete it afterwards. You can chose to keep the extracted content if you want. 
</blockquote>
<p>
The tutorial walks you through the code, showing you how to use their "ZipArchive" class to grab the file, extract the contents and display a list of the "child files" inside it. You can see a <a href="http://demos.webspeaks.in/zip/">live demo</a> of it in action or just <a href="https://www.box.com/s/3e3ee33e1e6bf503c057">download the source</a> and dive right in.
</p>]]></description>
      <pubDate>Wed, 13 Jun 2012 10:44:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Henri Bergius' Blog: Running Symfony CMF with Midgard2]]></title>
      <guid>http://www.phpdeveloper.org/news/18047</guid>
      <link>http://www.phpdeveloper.org/news/18047</link>
      <description><![CDATA[<p>
In <a href="http://bergie.iki.fi/blog/symfony-cmf-with-midgard2/">this new post</a> to his blog <i>Henri Bergius</i> shows you how to <a href="http://bergie.iki.fi/blog/symfony-cmf-with-midgard2/">run the Symfony CMF with Midgard2</a> content repository.
</p>
<blockquote>
I've written about <a href="http://bergie.iki.fi/blog/decoupling_content_management/">Decoupled Content Management</a> before. As the <a href="http://paris2012.live.symfony.com/">Symfony Live</a> event in Paris is nearing, I thought to give <a href="http://cmf.symfony.com/">Symfony CMF</a> a spin. Symfony CMF is a new approach at building PHP content management systems, and adheres quite well to the principles of decoupled CMS.
</blockquote>
<p>
He helps you set up the needed dependencies and content schemas as well as the YML configuration you'll need to set up to get the content repository backend working and integrated. Some command line calls are included to "prime" the database and the application should be ready to go.
</p>]]></description>
      <pubDate>Tue, 05 Jun 2012 08:46:19 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ed Finkler's Blog: Building a Tumblelog with Gimme Bar and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/17093</guid>
      <link>http://www.phpdeveloper.org/news/17093</link>
      <description><![CDATA[<p>
<i>Ed Finkler</i> has a new post today showing how he's created a <a href="http://funkatron.com/posts/building-a-tumblelog-with-gimme-bar-and-php.html">tumbleblog using the Gimmie Bar API and backend</a> as a source for the posts. For the curious, the code for his simple blog can be <a href="https://github.com/funkatron/GimmeMe">found here</a>.
</p>
<blockquote>
One of the coolest things about working on <a href="http://gimmebar.com/">Gimme Bar</a> has been the opportunity to build a platform. While most folks interact with our service via the web site, the site is just one application built on top of the Gimme Bar content collection and curation system. Our web site interacts with the system via our <a href="https://gimmebar.com/api/v0">HTTP API</a>, which is open to everyone, not just our internal team. That means that anyone can build applications on top of our platform to suit their own needs or interests.
</blockquote>
<p>
This simple blog (<a href="http://funkatron.com/GimmeMe">demo here</a> grabs items from his Gimmie Bar feed and posts them. He includes complete installation instructions and a brief overview of how the parts work together.
</p>]]></description>
      <pubDate>Mon, 07 Nov 2011 10:47:50 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Documentation Makes the World Go Round]]></title>
      <guid>http://www.phpdeveloper.org/news/16945</guid>
      <link>http://www.phpdeveloper.org/news/16945</link>
      <description><![CDATA[<p>
On PHPMaster.com today there's a new article emphasizing something that lots of developers forget to make a part of their process when writing code - <a href="http://phpmaster.com/documentation-makes-the-world-go-round/">creating useful documentation</a> to help make your code that much clearer.
</p>
<blockquote>
If you're writing code that will be shared with others, put yourself in their shoes. Don't let your project lose potential users, community members, and possible contributors all because of insufficient documentation.
</blockquote>
<p>
He (<i>Matthew Turland</i>) suggests a few things to keep in mind as you're writing up your documentation - the content is "king" (an emphasis on good descriptions/examples/use cases), open it up to external contributions using things like wikis (or even stored in the source code repository) and a focus on technical writing skills. Even the best tools out there can suffer if there's poor or no documentation.
</p>]]></description>
      <pubDate>Tue, 04 Oct 2011 09:03:16 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Decal CMS Blog: Testing your website before launching: how to let content drive design (Part 1)]]></title>
      <guid>http://www.phpdeveloper.org/news/16841</guid>
      <link>http://www.phpdeveloper.org/news/16841</link>
      <description><![CDATA[<p>
New from the Decal blog today there's a <a href="http://www.decalcms.com/page/Testing_your_website_before_launching_how_to_let_content_drive_design">general post about testing</a>, not writing tests for your code but testing methods for your site as a whole (like A/B testing). This is the first part of a series.
</p>
<blockquote>
For a long time, we here at Working Software have been strong believers in the "content precedes design" philosophy, as famously espoused by <a href="http://www.zeldman.com/2008/05/06/content-precedes-design/">Jeffrey Zeldman</a> and summarised here on <a href="http://uxmyths.com/post/718187422/myth-you-dont-need-the-content-to-design-a-website">UX Myths</a>. [...] We are relaunching this website so we'd gone through the process of creating our "content first" wireframe using Decal Mockups.
</blockquote>
<p>
They go through their entire process - how they decided what to test on the site, the methods they chose for the testing (including <a href="http://pickfu.com/">PickFu</a> and <a href="http://feedbackarmy.com/">Feedback Army</a>) and some of the results of the feedback from each.
</p>]]></description>
      <pubDate>Fri, 09 Sep 2011 13:05:42 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[DashExamples.com: Add a Content Security Policy(CSP) to your Web Site with PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/16774</guid>
      <link>http://www.phpdeveloper.org/news/16774</link>
      <description><![CDATA[<p>
Related to <a href="http://phpdeveloper.org/news/16749">this other post</a> about content security policies in PHP sites, DashExamples.com has a <a href="http://linux.dashexamples.com/2011/08/add-a-content-security-policy-csp-to-your-web-site-with-php/">quick new post</a> about what you'll need to add to your application to implement a policy of your own.
</p>
<blockquote>
Content Security Policy(CSP) is a mechanism in the browser that restricts what content will be requested and run by the browser. CSP does this by passing in a specific response header that tells the browser what resources (images, javascript, css, frames, etc) can be requested and accepted to execute. There are multiple ways to setup CSP for your web site, you can use your <a href="http://linux.dashexamples.com/2011/08/adding-content-security-policy-csp-to-apache-virtual-hosts/">web server configuration</a> like I showed in a previous example or use a dynamic scripting language like PHP.
</blockquote>
<p>
What it really boils down to is setting a header, either X-Content-Security-Policy or X-Content-Security-Policy-Report-Only, to tell the browser what security policy to use and how to honor it. You can find out more about content security policies from <a href="https://wiki.mozilla.org/Security/CSP/Specification">this page</a> on the Mozilla wiki. CSPs allow you to define how your site's content interacts and help to prevent issues like XSS and data injection.
</p>]]></description>
      <pubDate>Thu, 25 Aug 2011 13:11:36 -0500</pubDate>
    </item>
  </channel>
</rss>
