07
06
Kohana or CodeIgniter or CakePHP?
Posted by | Posted in PHP, Personal, Thoughts | Posted on 06-01-2010
Tagged Under : CakePHP, CodeIgniter, Frameworks, Kohana, KohanaPHP, PHP, PHP Frameworks, PHP5
I am going to start on a small system for internal use and I wanted to re-think my choice of CodeIgniter because it does not have templates or ORM. Guess what, I landed with KohanaPHP. It sounds very tempting that a new MVC Framework based on CodeIgniter with new features (especially ORM) is here but the documentation is really really poor.
I tried googling for a book or tutorial and I was really disappointed to have found none. I tried Amazon.com for a book but no books. Looks like I have landed in some weird space that might be good looking but I need to get my hands dirty in the code to learn it and at the end of the day, it may seem that I have lost a lot of hours on this new Framework. Lets give it a try!
Update: As of today (28th July, 2010), I am working on YII, its good, powerful and blazing fast. It has all the feature of CakePHP too.
14
Creating and Installing crontabs using CodeIgniter
Posted by | Posted in How to, OpenSource, PHP, Resources, Reviews, Tips and Tricks, Tutorials | Posted on 14-05-2009
Tagged Under : CI, CodeIgniter, Cron, Crontab, Frameworks, Linux, PHP, PHP Frameworks, PHP5
Last night, I was trying to get a crontab working in CodeIgniter, since my current project (a personal project) is using CodeIgniter now. I didn’t wanted to use the conventional approach of running crontabs and my code seperate.
Unfortunately, CodeIgniter does not have support for Crontabs and I didn’t wanted to user wget in linux crontab to initiate unwanted requests.
I spent some time and came up with a solution. It uses
- CodeIgniter backend
- Does not modify any core architecture of CodeIgniter
- Keeps configuration at one place
So enough of the summary and let me show you how its done.
Create a file (e.g. cron.php) in the same place as your index.php and system folder. Here is its code
/**
* @author Asim Zeeshan
* @web http://www.asim.pk/
* @date 13th May, 2009
* @copyright No Copyrights, but please link back in any way
*/
/*
|---------------------------------------------------------------
| CASTING argc AND argv INTO LOCAL VARIABLES
|---------------------------------------------------------------
|
*/
$argc = $_SERVER['argc'];
$argv = $_SERVER['argv'];
// INTERPRETTING INPUT
if ($argc > 1 && isset($argv[1])) {
$_SERVER['PATH_INFO'] = $argv[1];
$_SERVER['REQUEST_URI'] = $argv[1];
} else {
$_SERVER['PATH_INFO'] = '/crons/index';
$_SERVER['REQUEST_URI'] = '/crons/index';
}
/*
|---------------------------------------------------------------
| PHP SCRIPT EXECUTION TIME ('0' means Unlimited)
|---------------------------------------------------------------
|
*/
set_time_limit(0);
require_once('index.php');
/* End of file test.php */
Now, we need a controller e.g. test so the controller code could be something like this. Please note that normally we do not need to output anything from these controllers since they are doing some background work or sending emails but for the sake of giving an example, I will be output-ing something to elaborate the example.
/**
* @author Asim Zeeshan
* @web http://www.asim.pk/
* @date 13th May, 2009
* @copyright No Copyrights, but please link back in any way
*/</code>
class Test extends Controller {
function __construct()
{
parent::Controller();
}
function index()
{
echo "testing from index \n";
}
function test() {
echo "testing from test \n";
}
}
Now execute crontab on linux command prompt
php /full-path-to-cron-file/cron.php /test/index
Viola! all you need now, is to setup the crontab like you normally do.
This code is not shared under any license so feel free to copy/modify/use it. Please link back to this website / post in any way e.g. direct link, credits etc.
P.S. The examples above user PHP5 constructor, If you need to execute this code on PHP4, please modify the constructors.


