<?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>Mon, 20 May 2013 20:13:03 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Community News: Google App Engine now Supports PHP runtime]]></title>
      <guid>http://www.phpdeveloper.org/news/19595</guid>
      <link>http://www.phpdeveloper.org/news/19595</link>
      <description><![CDATA[<p>
On the Google Developers Blog (and lots of places across the web) there's a major update that Google has done for their AppEngine service - the <a href="http://googledevelopers.blogspot.com/2013/05/ushering-in-next-generation-of.html?m=1">introduction of a PHP runtime</a> to their offerings.
</p>
<blockquote>
<a href="https://code.google.com/p/googleappengine/w/list">App Engine 1.8.0</a> is now available and includes a Limited Preview of the <a href="http://cloud.google.com/appengine/php">PHP runtime</a> - your <a href="https://code.google.com/p/googleappengine/issues/list">top requested feature</a>. We're bringing one of the most popular web programming languages to App Engine so that you can run open source apps like Wordpress. It also offers deep integration with other parts of Cloud Platform including <a href="https://cloud.google.com/products/cloud-sql">Google Cloud SQL</a> and Cloud Storage. 
</blockquote>
<p>
You can get more information about how to use this new feature on <a href="https://gaeforphp.appspot.com/">Google App Engine site</a>.
</p>
Link: https://gaeforphp.appspot.com]]></description>
      <pubDate>Thu, 16 May 2013 10:05:03 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Automated backups to Google Drive with PHP API]]></title>
      <guid>http://www.phpdeveloper.org/news/19466</guid>
      <link>http://www.phpdeveloper.org/news/19466</link>
      <description><![CDATA[<p>
On his site <i>Lukasz Kujawa</i> has posted a new tutorial showing you how to <a href="http://systemsarchitect.net/automated-backups-to-google-drive-with-php-api/">perform automated backups to Google Drive</a> of files through their API (using <a href="https://github.com/lukaszkujawa/cp2google">his own library</a>).
</p>
<blockquote>
Where do you keep backups? I guess that depends on what do you backup. You might have a very clever answer for a business critical data but what about less important content? The best example would be a private blog. It will hurt if you lose your data but the odds are you're not willing to pay for any reliable storage. [...] There is one reliable storage, which is 100% free and almost everybody have access to it. Yes, I'm talking about Google Drive.
</blockquote>
<p>
He walks you through the process of setting up your Google Drive account API access and where to find the data you'll need to make the connection. He then links over to <a href="https://github.com/lukaszkujawa/cp2google">his project</a> that makes the backup a simple few lines of code (mostly configuration) of a backup path of your choice out to the remote Google Drive account.
</p>
Link: http://systemsarchitect.net/automated-backups-to-google-drive-with-php-api]]></description>
      <pubDate>Tue, 16 Apr 2013 10:57:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Igor Wiedler: Stateless Services]]></title>
      <guid>http://www.phpdeveloper.org/news/19410</guid>
      <link>http://www.phpdeveloper.org/news/19410</link>
      <description><![CDATA[<p>
<i>Igor Wiedler</i> has a recent post to his site about creating <a href="https://igor.io/2013/03/31/stateless-services.html">stateless services</a>, specifically in the context of using a dependency injection container to manage the objects your application uses.
</p>
<blockquote>
As more frameworks and libraries, particularly in the PHP world, move towards adopting the Dependency Injection pattern they are all faced with the problem of bootstrapping their application and constructing the object graph. In many cases this is solved by a Dependency Injection Container (DIC). Such a container manages the creation of all the things. The things it manages are services. Or are they?
</blockquote>
<p>
He notes that, according to some of the principles of domain-driven design, "services" should be stateless - the results of calls to the service shouldn't alter it, it should only depend on the values passed in. He goes on to put this into the context of a DIC and gives an example of the "request service" (and how it violates the DDD principles of statelessness). He talks some about scopes (dependencies) and mutable services. He talks about methods to get around these issues with the "request" instance, ultimately coming to the conclusion that event listeners might be the way to go.
</p>
Link: https://igor.io/2013/03/31/stateless-services.html]]></description>
      <pubDate>Thu, 04 Apr 2013 10:41:50 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Duckout Blog: Do Funny Stuff with the Google Charts API and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/19366</guid>
      <link>http://www.phpdeveloper.org/news/19366</link>
      <description><![CDATA[<p>
In <a href="http://www.duckout.de/programming/do-funny-stuff-with-the-google-charts-api-and-php/">this recent post</a> to the Duckout blog, they show you how to hook your PHP-based (and database driven) application into the Google Charting API for chart/graph generation.
</p>
<blockquote>
I think, whenever we see a chart in a magazine, in books or applications our brain say's to us Yeepie!!! Don't read these stupid texts or tables! Just look at the green or yellow line and hope that they are above the other lines or hope that your opinion is the biggest part of the pie¯. This saves us a lot of work and in my opinion we should concentrate on drawing beautiful colorized pie charts, instead of writing long boring articles. But the question is: ¯How do I draw these beautiful colorized pie charts? The simple answer is: you don't have to, because google will draw them for you and you just have to tell them what to draw via the google charts api.
</blockquote>
<p>
The <a href="https://github.com/Gamma32/breakfast">sample application</a> is a "breakfast rating" tool that logs the results to a MySQL database via PDO calls. The results are then extracted and formated as JSON to be compatible with the Google Charts API data handling. Some sample Javascript is included showing how to call the Charts API with your data and get back a simple line graphing of the data from the database. You can see the application in action <a href="http://breakfast.cloudcontrolled.com/">here</a> for reference.
</p>]]></description>
      <pubDate>Tue, 26 Mar 2013 11:40:44 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Sherif Ramadan: Web Analytics with PHP and Google Visualization: Made Simple]]></title>
      <guid>http://www.phpdeveloper.org/news/18918</guid>
      <link>http://www.phpdeveloper.org/news/18918</link>
      <description><![CDATA[<p>
in <a href="http://sheriframadan.com/2012/12/web-analytics-with-php-and-google-visualization-made-simple/">this new post</a> to his site <i>Sherif Ramadan</i> shares a method for visualizing your website's visitor data with the help of the <a href="https://developers.google.com/chart/interactive/docs/reference">Google Visualization APIs</a> and some geolocation.
</p>
<blockquote>
<p>
The web is a place where everyone is in your backyard. This can be both a blessing and a curse. How do you know where your website traffic is coming from and how much of it there is? [...] How was traffic led to your website in the first place and why? How long do people stick around and what do they like the most about your site? These are all some of the many questions you can answer with web analytic software, but the real question is why would you want to answer these questions at all and what's the best way to look at the answer?
</p>
<p>
[...] If we look at a heat map it's easier to spot where the majority of our visitors and traffic are coming from, geographically. It also helps us understand that people visiting a virtual space can, and will, be physically located in different parts of the world.
</p>
</blockquote>
<p>
He includes the steps to recreate a map like the one <a href="http://sheriframadan.com/examples/geodata.html">included in this page</a> showing the current view statistics on his site. He uses a MySQL backend to store the GeoIP data and parses out the Apache "access_log" to get the IPs of the visiting users. He then runs these against the GeoIP data and passes this country data on to Google's visualization for handling. He also recommends using the tools offered by the <a href="https://www.google.com/webmasters/tools/">Google Webmaster Tools</a> to further enhance your introspection into your site's visitors.
</p>]]></description>
      <pubDate>Wed, 19 Dec 2012 12:38:47 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Gonzalo Ayuso: Managing Windows services with Symfony/Process and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18681</guid>
      <link>http://www.phpdeveloper.org/news/18681</link>
      <description><![CDATA[<p>
In his <a href="http://gonzalo123.com/2012/10/29/managing-windows-services-with-symfonyprocess-and-php/">recent post</a> <i>Gonzalo Ayuso</i> shows how to use Symfony to work with Windows services on the server.
</p>
<blockquote>
Sometimes I need to stop/start remote Windows services with PHP. It's quite easy to do it with net commnand. This command is a tool for administration of Samba and remote CIFS servers. [...] Today we are going to create a PHP wrapper for [net rpc service].
</blockquote>
<p>
He uses <a href="http://behat.org/">Behat</a> to create a feature (test) file, the code behind the features and a service class that handles the actual work of interacting with the service (with methods to do things like stop, start and list running services). Examples of its use are also included.
</p>]]></description>
      <pubDate>Thu, 01 Nov 2012 10:49:09 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Liip Blog: 2-step verification with Google Authenticator and PHP]]></title>
      <guid>http://www.phpdeveloper.org/news/18335</guid>
      <link>http://www.phpdeveloper.org/news/18335</link>
      <description><![CDATA[<p>
With the recent focus on security (caused by some major issues with large companies) Google has responded by reinforcing their 2-Factor Authentication method. Thankfully, there's a way you can implement that functionality in your applications too using the information in <a href="http://blog.liip.ch/archive/2011/08/29/2-step-verification-with-google-authenticator-and-php.html">this tutorial</a> (note: the date of posting is older, but it's definitely relevant now).
</p>
<blockquote>
Many large web services nowadays support 2-step verification to enhance the security for their users. [...] The main point about 2-step verification is that something else than your computer provides that token. If it's on your computer and that one gets stolen (or hacked into), it won't help much for the additional security. That's why you need a second device for those tokens.
</blockquote>
<p>
They link to <a href="https://github.com/chregu/GoogleAuthenticator.php">this library</a> that can help you implement something similar to Google's <a href="http://code.google.com/p/google-authenticator/">Authenticator</a> tool for your application.
</p>]]></description>
      <pubDate>Wed, 08 Aug 2012 13:12:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Script-Tutorials.com: Google API - Get contact list]]></title>
      <guid>http://www.phpdeveloper.org/news/18275</guid>
      <link>http://www.phpdeveloper.org/news/18275</link>
      <description><![CDATA[<p>
In <a href="http://www.script-tutorials.com/google-api-get-contact-list/">this new tutorial</a> on the Script-Tutorials.com site, they show you how to use the Google API (and OAuth) to access contacts information from your Gmail account.
</p>
<blockquote>
In our new tutorial I am going to tell you about inviting friends. I think that this is the most important part for every website, a key to success. Today I will show you how to create simple and effective Gmail contact importer using OAuth authorization and API. Also, I will tell about obtaining Google API access too.
</blockquote>
<p>
Screenshots show you how to get to the access token information you'll need to connect and the <a href="http://www.script-tutorials.com/demos/291/source.zip">full code</a> is included to help you get authenticated and pull down the contacts list to display in the page's HTML output.
</p>]]></description>
      <pubDate>Thu, 26 Jul 2012 09:26:27 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Christopher Kunz's Blog: Now serving: SPDY]]></title>
      <guid>http://www.phpdeveloper.org/news/17900</guid>
      <link>http://www.phpdeveloper.org/news/17900</link>
      <description><![CDATA[<p>
<i>Christopher Kunz</i> is trying out the new web acceleration tool Google recently released (<a href="http://en.wikipedia.org/wiki/SPDY">SPDY</a>)  when his site is <a href="https://www.christopher-kunz.de/archives/279-Now-serving-SPDY.html">served under HTTPS</a> (warning, self-signed cert).
</p>
<blockquote>
The reason this posting lands in the PHP category is that I want to have a playground testing PHP applications with mod_spdy. Currently (and probably also in the future), this machine uses mod_php instead of php_(f)cgi(d) - this is not recommended for interoperation with mod_spdy. To test the real-life impact of the possible thread safety issues, I am using my private pages as a sandbox.
</blockquote>
<p>
He has two other PHP-based applications running with the accelerator - a <a href="https://gallery.christopher-kunz.de/">Gallery3</a> install and <a href="https://absynth.de/">a WordPress site</a>. SPDY ("speedy") was released by Google and is similar to HTTP but with a focus on minimized latency and heightened web security. 
</p>]]></description>
      <pubDate>Thu, 03 May 2012 08:14:08 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPClasses.org: Participate in the Lately in PHP podcast in Video with Google Hangouts]]></title>
      <guid>http://www.phpdeveloper.org/news/17866</guid>
      <link>http://www.phpdeveloper.org/news/17866</link>
      <description><![CDATA[<p>
PHPClasses.org is trying something new with their "Lately in PHP" podcast for this latest episode - they want you to be a part of it <a href="http://www.phpclasses.org/blog/post/181-Participate-in-the-Lately-in-PHP-podcast-in-Video-with-Google-Hangouts.html">via a Google hangout</a>.
</p>
<blockquote>
The Google Hangouts On Air edition is not yet generally available to all Google+ users. However, thanks to the guides of the Google Top Contributor program, on which I have the pleasure and the privilege to participate, this feature was enabled on the PHP Classes site Google+ account. Therefore, starting the next episode, we are going to try recording the Lately in PHP podcast using the Google Hangouts On Air. This is still an experimental idea, but if all goes well, all the upcoming podcast episodes will be recorded this way.
</blockquote>
<p>
Instructions are <a href="http://www.phpclasses.org/blog/post/181-Participate-in-the-Lately-in-PHP-podcast-in-Video-with-Google-Hangouts.html">included in the post</a> if you'd like to participate in the upcoming episode (recording time is yet to be determined).
</p>]]></description>
      <pubDate>Wed, 25 Apr 2012 12:25:15 -0500</pubDate>
    </item>
  </channel>
</rss>
