While working with my Solarified wrapper for Amazon's S3, I found out that prior to version 5.3.0, HTTP streams in PHP are almost unusable.
I've heard people complain about the lack of documentation for Solar. While I generally agree, there's something I have to say to defend Solar. There's also a few things about framework documentation in general that I feel the need to talk about.
In my previous entry about SQL authentication with Solar I promised to tell about implementing Persistent Logins (a.k.a "Remember Me" -feature) with Solar. I will use the previous entry as a starting point and add functionality to it, so be sure to read it first. I will first describe the idea and then show how you can implement it on your site.
The code is part of the Lux project that I maintain together with Rodrigo Moraes.
Chris Cornutt (a.k.a enygma) launched a new version of PHPDeveloper.org. The site is now powered by Solar!
It is always good to hear about new sites running on Solar. What makes this special is that Zend Framework got replaced by Solar :-).
Setting Up SQL-based User Authentication with Solar
4 Mar 2008 @ 02:14:20 2 commentsI think it's a pretty common habit to have your usernames and passwords stored in a database table. This little tutorial shows you how to implement SQL-based authentication with Solar. Because of Solar's tight configuration mechanism, this is a walk in the park.
I had a weird experience a while back when implementing a cache for one of my sites. I figured I'd use APC's user cache because it's pretty fast. All was fine and the site seemed to work really fast. So next thing I did was try ab on it to see how fast it really was. Man did the performance drop. The whole server collapsed! I couldn't make a single request to the server.
The cache was for DB query data (surprise :-), so I took a look at show full processlist. It showed it was running queries multiple times that should not have been running at all. This seemed weird, to say the least.
Next, I took a look at APC's status with apc.php and saw my cache keys there like they should be. So again, I tried ab and refreshed the stats page. Now it displayed a completely different page than previously; some of the keys were missing. I tried refreshing, and again, the results changed.
Then it hit me. It must have something to do with the nature of FCGI because my ab tests would make Apache to spawn new FCGI processes to be able to handle concurrent requests (ab -c). It's pretty obvious: APC has it's own cache for every FCGI process. Not only for user cache but for opcodes as well. With opcodes this is not so bad but a user cache will take a lot of your memory if the same data is stored multiple times. It can also be really slow to setup cache entries for every process.
I didn't want to have data cached multiple times in memory so I switched to memcached. Memcached sends data over a TCP connection so it's a bit slower than APC user cache, but who cares.
Because I'm such a Solar fan-boy I'll tell you that Solar has cache adapters built-in for both APC and memcached. See the full list of cache adapters for Solar here.
Template Partials With Solar_View
27 Jan 2008 @ 16:55:23 No commentsIn this entry I'd like to demonstrate how you can create reusable view templates with Solar and use them with Solar_View::template() and Solar_View::partial(). I'll tell you why partial() is much practical when reusablility is your goal.
Categories
Links
Latest Entries
- HTTP streams are usable in 5.3.0
- Finally, an iPhone
- Thank You Bullet For My Valentine
- Last.fm beta
- New headphones
- About Solar's documentation
- August Burns Red kicks ass
- "util" is wrong
- Persistent Logins with Lux and Solar
- PHPDeveloper.org made it's move to Solar
- Git mirrors up for Solar, Sungrazr and Lux
- Setting Up SQL-based User Authentication with Solar
- APC user cache and FCGI
- PHP User Group Helsinki?
- Template Partials With Solar_View
- First Post

