Currently Browsing: CakePHP

Ext.Direct for CakePHP

Finally, I completed the basic implementation of Ext.Direct server-side stack for CakePHP.

You can clone a working copy from http://github.com/eabay/directcakephp.

It is not that good but it works! :)

http://www.extjs.com/forum/showthread.php?t=86501

CakePHP Helper for rakaz Combine

Combine is still my favorite javascript/css combine and compress script.

I posted a solution how to use it in a CakePHP application and here is a little helper to make it more useful:

<?php
//app/views/helpers/combine.php
class CombineHelper extends AppHelper
{
	public $helpers = array('Html', 'Javascript');
	private $_pattern = '../combine.php?type=:type&files=:files';
	public function js($files)
	{
		echo $this->Javascript->link($this->_format($files));
	}
	public function css($files)
	{
		echo $this->Html->css($this->_format($files, 'css'));
	}
	private function _format($files = array(), $type = 'javascript')
	{
		return String::insert($this->_pattern, array('type' => $type, 'files' => implode(',', $files)));
	}
}

Add it to controller’s helpers property:

<?php
class MyController extends AppController
{
	public $helpers = array('Combine');

And call it by passing an array of file names in your view:

$combine->js(array(
    'javascript1.js',
    'javascript2.js',
    'javascript3.js'
));
$combine->css(array(
    'stylesheet1.css',
    'stylesheet2.css',
    'stylesheet3.css'
));

Don’t forget to add file extensions!

If you want to add only one file, you don’t have to use combine helper. Directives added to .htaccess file let combine script to compress the file(See related post). Just use $javascript->link(‘filename’).

Using rakaz Combine With Your CakePHP Application

Combine is a small PHP script and some clever URL rewriting designed to speed up the loading of pages that use many or large css and javascript files.

It is good but how can you integrate it with your CakePHP project? And solution comes with the question :) .

Download a copy of combine.php and drop it into your “app/webroot” directory (or whatever your application folder name is XXX/webroot/).

Open the file in your text editor and change lines:

$cachedir = dirname(__FILE__) . '/cache';
$cssdir   = dirname(__FILE__) . '/css';
$jsdir    = dirname(__FILE__) . '/javascript';

with

$cachedir = dirname(__FILE__) . '/../tmp/cache';
$cssdir   = dirname(__FILE__) . '/css';
$jsdir    = dirname(__FILE__) . '/js';

Open your “app/webroot/.htaccess” file and add those two lines

RewriteRule ^css/(.*\.css) combine.php?type=css&files=$1
RewriteRule ^js/(.*\.js) combine.php?type=javascript&files=$1

That’s all! Check download times of your css and javascript files with a tool like Firebug. A fatty 527KB ext-all.js javascript framework file compressed to 140KB! Amazing ha?

rakaz combine

Page 1 of 212