<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.2" -->
<rss version="0.92">
<channel>
	<title>Rob Rosenbaum's Development Blog</title>
	<link>http://robrosenbaum.com</link>
	<description>PHP, Symfony, and Other Web Things</description>
	<lastBuildDate>Wed, 30 Jan 2008 20:54:21 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>HOWTO: Force Package Removal in Ubuntu/Debian</title>
		<description>If you need to remove a package without removing dependent packages, here is the command you need:
sudo dpkg -r --force-depends &#60;packagename&#62;
I have no idea why this is so hard to find - you could spend an hour reading the dpkg man page and never figure it out, and most posts ...</description>
		<link>http://robrosenbaum.com/linux/howto-force-package-removal-in-ubuntudebian/</link>
			</item>
	<item>
		<title>HOWTO: Disable Session Timeout in Symfony</title>
		<description>The problem: make symfony use PHP's default session behavior. Symfony session handling is based on timed sessions - you set a time after which the session will expire - but the default PHP behavior is to expire when the user closes the browser window. This is also the most commonly ...</description>
		<link>http://robrosenbaum.com/php/howto-disable-session-timeout-in-symfony/</link>
			</item>
	<item>
		<title>sfModelTestPlugin - Simple unit tests for any ORM!</title>
		<description>I have redone the sfPropelTestPlugin, and it is now sfModelTestPlugin, with support for Doctrine and Propel 1.3! Also new - you can now specify the test data file/directory at runtime, allowing for more flexibility with your tests. I want to thank Anders Betnér and my readers for bug reports and ...</description>
		<link>http://robrosenbaum.com/php/sfmodeltestplugin-simple-unit-tests-for-any-orm/</link>
			</item>
	<item>
		<title>New symfony plugin - sfPropelTestPlugin simplifies unit tests</title>
		<description>If you've ever tried to write a symfony unit test for a model class - or for any piece of code that interacts with the database - then you know what a headache it can be. sfPropelTestPlugin to the rescue! This plugin loads all the necessary symfony components for database ...</description>
		<link>http://robrosenbaum.com/php/new-symfony-plugin-sfpropeltestplugin-simplifies-unit-tests/</link>
			</item>
	<item>
		<title>Improved Plugin for Model Validation: sfPropelValidatePlugin</title>
		<description>I have updated my plugin for doing model-based validation in symfony. The new plugin uses the Propel builders instead of behaviors, so it is now called sfPropelValidatePlugin instead of the former (unwieldy) name sfPropelValidateBehaviorPlugin. If you have not investigated the Propel builder classes, I suggest you give them a look. ...</description>
		<link>http://robrosenbaum.com/php/improved-plugin-for-model-validation-sfpropelvalidateplugin/</link>
			</item>
	<item>
		<title>Mapping Tab to Both Snippets and Code Completion in Vim</title>
		<description>SnippetsEmu allows you to create TextMate-style snippets in Vim which, together with Vim's native code-completion feature, makes Vim a top choice among lightweight text editors. When I installed Snippy (as its creator, ironically, likes to call it), I had one problem: SnippetsEmu maps its functionality to the &#60;Tab&#62; key, which ...</description>
		<link>http://robrosenbaum.com/vim/mapping-tab-to-both-snippets-and-code-completion-in-vim/</link>
			</item>
	<item>
		<title>Using Flash Upload with PHP &#038; symfony</title>
		<description>Through Flash's FileReference and FileReferenceList classes, you  can create a powerful file uploader that allows the user to upload multiple files with a single form element. But beware: unless the user happens to be using IE, the upload will use a new browser session to upload the files. This ...</description>
		<link>http://robrosenbaum.com/php/using-flash-upload-with-php-symfony/</link>
			</item>
	<item>
		<title>Comparing Strings in PHP - Mysteries of PHP, Part 2</title>
		<description>Don't use the equality operator (==) to compare strings - use the strcmp() function, or the identity operator (===). In fact, when comparing values in PHP, use the identity operator (===) instead of the equality operator whenever possible. You may have heard that === is faster, since it incurs no ...</description>
		<link>http://robrosenbaum.com/php/comparing-strings-in-php-mysteries-of-php-part-2/</link>
			</item>
	<item>
		<title>DOMNodeList Gotchas</title>
		<description>An Undocumented "Feature"
Suppose we write the following code, whose simple purpose is to go through an XML document and replace every "foo" element with an empty "bar" element: 

$dom = DOMDocument::loadXML('
  &#60;root&#62;
  &#60;foo&#62;This&#60;/foo&#62;
  &#60;foo /&#62;
  &#60;foo /&#62;
  &#60;/root&#62;'
);

$document = $dom-&#62;documentElement;
$foos = $document-&#62;getElementsByTagName('foo');

for ($i = 0; ...</description>
		<link>http://robrosenbaum.com/php/domnodelist-gotchas/</link>
			</item>
	<item>
		<title>Use Ruby-style tags in PHP</title>
		<description>One undeniable advantage of Ruby on Rails is its terse template syntax. The cumbersome
&#60;?php echo $something ?&#62;
is replaced by the elegant and readable
&#60;%= something %&#62;
The very good news is that you can use these same tags in PHP! Just add the following to your htaccess:
php_flag asp_tags on
Voila! Readable templates. What's ...</description>
		<link>http://robrosenbaum.com/php/use-ruby-style-tags-in-php/</link>
			</item>
</channel>
</rss>
