symfony and TextMate
Installing Symfony Bundle into TextMate
mkdir -p /Library/Application\ Support/TextMate/Bundles cd /Library/Application\ Support/TextMate/Bundles svn --username anon --password anon co http://macromates.com/svn/Bundles/trunk/Bundles/PHP%20Symfony.tmbundle
...the TextMate folder could also be found at ~/Library/Application Support/TextMate
Snippets
Criteria
This is a quick way to do criteria lookups.
\$c = new Criteria();
\$c->add(${1}Peer::$2, $3);
\$${1/.*/\L$0/} = ${1}Peer::doSelectOne(\$c);
$0
Commands
Routes
This is a command written in php CLI for textmate, to show your current app's routing rules as a tooltip :
_add this code as /Library/Application Support/symfony.tmbundle/bin/symfony.showroutes.php or in your own bundle_
preg_match ('`^(.+/)apps/([^/]+/).*`i',$_ENV['TM_FILEPATH'],$match);
if ( count($match)==0 )
{
echo "You are not in a Symfony app!";
exit;
}
$app=$match[2];
$root_dir=$match[1];
define('SF_ROOT_DIR', $root_dir);
define('SF_APP', $app);
define('SF_ENVIRONMENT', 'dev');
define('SF_DEBUG', true);
require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
$routes=sfRouting::getInstance();
echo 'Routes for app '.$app.' :
';
foreach ( $routes->getRoutes() as $routename=>$params )
{
if ( $routename == 'default' || $routename == 'default_symfony' || $routename == 'default_index' ) continue;
echo ' @'.$routename;
if ( count($params[2])>0 )
{
echo '?'.implode('=X&',$params[2]).'=X';
}
echo ' ('.$params[4]['module'].'/'.$params[4]['action'].')
';
}
Create a new command in symfony bundle (or your own), that saves nothing, inputs none, and output as a tooltip :
${TM_PHP:=php} "$TM_BUNDLE_PATH"/bin/symfony.showroutes.php

