Development

SymfonyTextMateBundle

You must first sign up to be able to contribute.

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

The Sensio Labs Network

Since 1998, Sensio Labs has been promoting the Open-Source software movement by providing quality web application development, training, consulting, and supporting several large Open-Source projects.