|
Richard Lord has really gotten into the Zend Framework so much so that's he's created a new site with the library onewishlist.net:
I've been posting a lot about the Zend Framework recently. That's because I've been using it in building a new version of my wishlist site. The new site is called One Wishlist and is at onewishlist.net. It uses version 0.7 of the Zend Framework. I?ll try moving it to version 0.8 soon.
He's still updating things as he moves the content and site's functionality over to the Framework, but seems to have found the transition relatively painless. Check out onewishlist.net for yet another example of a site implementing the Zend Framework.
|
|
|
On the FuzzyOpinions blog, there's a basic tutorial that walks you through the creation of a CAPTCHA system to use how you'd like on your site. They target it towards the most common use blocking unwanted comments to a site from spambots.
Although you might not know it by the name, a captcha is one of those little boxes you see, more and more lately, that ask you to type in a random code to verify that you are a human being and not a robot. There are many different varieties, but the basic idea is an image that is obscured slightly but readable by a human and used as a passcode for secure entry to a system or task.
The method is a simple combination of random text, a custom image, some of the PHP graphics functions, and a little addition to your HTML form (and PHP session) to get things up and running.
|
|
|
Launching off from this previous post on the Stubbles Blog, two more posts (from two other developers) have been posted on the same subject:
In this new post, Frank Kleine takes things a step further and talks about the same kind of type hinting but for more types including arrays and objects. Examples of how he'd expect things to work followed.
The other post is from Stephan Schmidt again and varies slightly off into the world of Namespaces to be included in PHP6 along with the use of annotations.
Be sure to check out the comments on each for some more interesting tidbits...
|
|
|
The Bakery has a new helper posted today for those working with images in their applications that need to resize and cache them easily.
This helper resizes an image on the fly and places it in an image cache directory for later use. Make sure your imagecache directory is writable. Future editions could include a cropping function.
The full code of the class is provided in both a cut and pasteable format and for download. There's an example of the sample usage included as well.
|
|
|
In this new tutorial from DevShed (in their RSS Reader series), they finally get down to the real heart of the application the code.
The other other two parts prepared you for this, the creation of the actual RSS file correctly formatted and filled with data. They also include a simple feed reader so you can ensure your document can be read correctly.
Unfortunately, they chose to go with a long line of fwrites to push out each line of the file instead of pushing it all into one string and writing that. Using the multiples makes more work for the file handling and could result in a slowdown for a large amount of items in the RSS file.
|
|
|
Paul Jones is rejoicing a bit about the OpenID and Typekey functionality Wez Furlong shared just the other day on his blog.
Wez Furlong gives us good news about implementing the math functions needed to support TypeKey and OpenID more directly within PHP.
Paul also mentions that the Solar framework has also had the Typekey support integrated for a while now (as an adapter) that uses the bignumber math functions currently available to PHP developers. Wez's solution, however, would just about make those obsolete.
|
|
|
In a new post today, Pandaacute;draic Brady takes a look at the OpenID library included in the Zend Framework and his own efforts to create functionality of his own.
Here in the present, everyone I work with is all too aware of OpenID. [...] Enter the Zend Framework. If you've ever looked under the hood of the JanRain PHPOpenid library you'll notice they implement all of this without a single dependency on PEAR or other external classes.
He notes that this application of the Not Invented Here method that the Zend Framework follows might not be the best when there are already plenty of libraries out there that help with this exact functionality. He mentions a PEAR class that helps with it, but is written in PHP4 and hasn't quite been optimized.
|
|
|
Latest PECL Releases:htscanner 0.7.0pecl_http 1.5.0 |
|
|
Company
I Love Rewards
Location
Toronto, Canada
Title
3 PHP Contractors
Summary
This is an exciting opportunity for an individual to join one of Canada's Top 100 Employer's and one of GTA's Top 50 Employers for 2007 and contribute significantly to its growth. I Love Rewards offers an environment where innovation and initiative are encouraged and rewarded.
This is a 3 month CONTRACT position, with the option for fulltime. Send resume and coverletter to
This e-mail address is being protected from spam bots, you need JavaScript enabled to view it
or visit us at: www.iloverewards.com
Link
More Information
|
|
|
WebReference.com is back today with part two of their Building a Weblog series picking up where the previous part left off.
They start with adding a comments summary to the page, giving the user a view of the previous comment submitted by other users. They include a brief look at anchor tags before moving into the code to display some of the previous blog entries. Next up is all about getting more specific creating the code to view each of the specific blog entries.
Of course, what is an entry without its comments, so they include the code to integrate that into the page as well. Finally, they give the user a way to talk back about the content they're reading by adding a simple comments form to each of the posts' pages.
|
|
|
The PHPGTK Community site has introduced a new feature for members of the site the ability to create and write to their own blog right there on the site.
These are the most visible sign of a new feature on the site: registered members now have their own blog on the site, and blogging about a manual update, community story or recent page is just one click away.
Clicking on the small, dark, lowercase 'b' marks on their site (when logged in, of course) will allow users to blog about a specific item or piece of content on the site. You can still create freeform posts, but this is a shortcut to prepopulating some of the details about the content without having to cut and paste or type it in yourself.
Check out the PHPGTK Community site and check out this post for more information on how you can get started.
|
|
|
On ibzi's blog today, there's a quick guide to introducing caching to your PHP application via a simple PHP file to create the cached pages.
Caching your pages can be pretty useful, especially if you have PHPgenerated pages that uses a lot of MySQL queries. Once your pages are cached, your server won?t waste speed and RAM on regenerating the pages, it will just load it from the cache. I?m going to show you how to get PHP to cache your pages, and you can probably do this within 5 minutes.
You'll need to be able to add (and use) an .htaccess file for Apache to use this method, but once it's set up, the simple script works like a charm. It prepends the caching functionality to each page and checks to see if a copy already exists. If it does, it displays it and if not, it will display it and create the cached file.
|
|
|
As both Andrei Zmievski and Clay Loveless mention in new blog posts from each, things in the PHP framework scene are getting a bit out of hand.
Andrei's comments:
I know you might be lusting after Rails for some reason and want to have the fame, the glory, and the dancing girls of DHH, but are we not going to be satisifed until Sourceforge is filled with the objectoriented diarrheal remains of our overblown egos and delusions of grandeur?
And Clay's thoughts:
Build a cool app. Forget about your own personal stamp on the framework world; you missed the boat on that one. But, if you want to make a mark, the world is wide open for new and cool applications. Pick an existing framework, start building your app, and contribute fixes back to that framework's community as you find shortcomings in your needs for your app.
They're both in agreement, and on more that one point. They recommend the best course of action for anyone out there with the itch to really work with a framework fine one of the already established ones and dive right in. It might not be your own code, but you can contribute your own functionality and thoughts into the project and establish your own little niche.
|
|
|
PierreAlain Joye has posted a quick hit to his blog today about using one php.ini file for both a cli and cgi installation of PHP without it throwing errors for htscanner.
Htscanner reports error during module or request init (returns FAILURE), these errors may be fatal and stop the current executions. This behavior is not desired if you use it in a shell ((if you have only one system php.ini for both cli and cgi or if htscanner is compiled statically). This release brings a new ini settings to solve this problem, stop_on_error.
The solution involves changing the htscanner setting to 0 instead of 1 to return a SUCCESS message rather than the errors.
|
|
|
Sean Coates has created a simple version of a popular bit of Perl functionality and shares the code in hi slatest post the pie ability to perform a search and replace, line by line, through a file using a regular expression.
I've often found myself looking for a PHP equivalent. Not to do simple substitutions, of course, but complex ones. And since I'm most comfortable with PHP, and a I have a huge library of snippets that I can dig out to quell a problem that I may have solved years ago, I've been meaning to fill this void for a while.
So, one evening, he came home and hashed out this version of the script. He includes the code in the post...it works on the command line and pulls in a file (though STDIN) and loops through the buffered version to perform the regex replace.
|
|
|
Hannes Magnusson has posted about more updates that are being made to the PHP.net website today, including an upgrade to the conference teaser patch and the introduction of a new box to like directly to the latest releases on the front page.
Since I moved the 'current releases' info into a giant includable array, living in include/version.inc, we can now provide a simple XML feed (or whatever) for you to parse to get the latest release info simpler and more accurately...
What do you think? Is it worth it? What kind of format would you want it in?
He wants your feedback on this last point would having an XML feed for just the version info be that useful? Or would it just be yet another RSS feed to add to the list to keep up with the new PHP releases?
|
|
|
Latest PEAR Releases:PHP_CompatInfo 1.4.1HTML_Progress2 2.3.0RC1pearweb_phars 1.1.0pearweb 1.4.0Auth 1.5.0HTML_QuickForm_altselect 1.0.0RC1PEAR_PackageUpdate 0.6.1PHP_Beautifier 0.1.13pearweb 1.4.2Structures_LinkedList 0.1.2pearweb 1.5.0RC1Console_Getopt 1.2.2Structures_DataGrid_Renderer_Flexy 0.1.0HTML_CSS 1.1.3Text_CAPTCHA 0.2.1PHP_CodeSniffer 0.4.0 |
|
|
On the PHPTools blog, there's a note |
|
|
A very detailed article on Arrays in PHP, including their different types, foreach loop and builtin functions var_export, print_r, var_dump etc practical examples |
|
|
In a new entry to his blog today, Richard Lord takes a look at how to gracefully handle 404 errors in a Zend Framework application (via a custom plugin).
Early versions of the Zend Framework had a noRoute action that was called when the correct action couldn't be found. This was a way to deal with some page not found errors. At some point it was dropped I don't know when or why because I only started using the Zend Framework recently. It's still possible to handle nonexistent actions using the __call() method of the controller class. But there's no obvious way to deal with all page not found errors in one place, including instances where the controller doesn't exist.
The framework makes it easy to create actions link to controllers, but there's still a problem when a requested action isn't there. His plugin has a solution to that it is fired off when the action requested doesn't exist and automatically reroutes it to the noroute controller to be handled.
|
|