CMarkdown usage examples

You can use CMarkdown class as typical Yii widget:

[code language=”php”]
<?php $this->beginWidget(‘CMarkdown’); ?>
_Markdown_ *example*
<?php $this->endWidget(); ?>
[/code]

or directly as a function:

[code language=”php”]
$text = ‘_Markdown_ *example*’;
$md = new CMarkdown;
echo $md->transform($text);
[/code]

That’s pretty much everything, folks!

Convert CActiveDataProvider to associative array

Here is an example on how to convert CActiveDataProvider to a simple associative array.

[code language=”php”]
$dataProvider = new CActiveDataProvider(‘Users’);
$data = array();

foreach($dataProvider->getData() as $r)
{
$rowArray = array();

foreach($dataProvider->model->tableSchema->columns as $c) $rowArray[$c->name] = $r[$c->name];

$data[] = $rowArray;
}
[/code]

Columns names are read from table schema, so you don’t have to know table (model) structure to use this.

Missing colon in field’s labels

By default, Yii renders all forms with field’s labels not containing colon after label. This may be unwanted effect for some. The easiest way would be to change field’s label to contain that missing colon. But, that would produce an even more unwanted side-effect of having that colon included (as part of field label) in error message, when validation fails. Here is my simple workaround for this problem.

Read More “Missing colon in field’s labels”

Correcting code completion in NetBeans

General code completion in NetBeans works quite good (expect for its speed), but since NetBeans was made for Java and has only “added” support for PHP then it has some issues code completion for PHP and for coding in Yii framework it fails nearly completely.

Here you’ll find approach to fix this and make Yii developers using Netbeans life a little bit easier.

Read More “Correcting code completion in NetBeans”

Too long URLs in Apache

It turned out that in current version of Apache you’re limited to 255 characters at most between each pair od slashes (after URL decoding is done). This short article discusses this issue and maybe useful to all developers, who are dealing with “beauty” (SEO-optimized) URLs, like for example URLs to blog posts containing entire title inside.

This is a rare situation (255 characters limit between slashes, not for the entire URL), but still worth exploring.

Read More “Too long URLs in Apache”

Is it possible to convert working pure PHP appication to Yii

I was once asked, if it would be possible to do step-by-step conversion of a large project written in pure PHP into Yii. In my opinion, it is possible, but absolutely not worth it.

Most professional frameworks are complete opposite to “pure PHP” code in actually all areas. Code is separated most times (i.e. into model, view and controller in MVC design pattern) and uses mostly framework classes or code. I would even say, that writing an application in some framework means using only 10-20% of pure PHP code and doing rest purely on framework classes, extensions, controllers etc.

In other words: porting a “pure PHP” application into framework code would mean writing that application from scratch. I’m not sure, if you would be able to reuse more than 5% of your original source code?

Using PHP and Oracle database

I was working on bigger project using PHP (Yii) and Oracle database (through PDO and Yii). This isn’t a very common combination and many developers thinks, that writing PHP application to use Oracle database is a pure madness, mostly due to many strange behaviors and nasty bugs, that are present in PDO driver for Oracle. I can actually confirm this. Following article contains links to my Yii forum discussions on various aspects of using Oracle with Yii and PHP. You may find it useful, if you’re struggling with any problem.

Read More “Using PHP and Oracle database”

Modify CGridView look

The CGridView class in Yii is a state of art solution, that gives you out-of-the-box full model browsing features including filtering, pagination and sorting. The picture would be perfect, if not for default look of grid view, which is a little bit “nasty”! :> It is understandable, as Yii author focused himself on delivering perfectly working framework, that does not necessary have to be pretty in the same time.

However, basing on famous flexibility of all components in Yii, with a help of few simple steps, you can completely change the look & feel of your grid view.

Read More “Modify CGridView look”

Understanding… series of articles for Yii 1.1

Suppose, you place your self somewhere in the middle of Yii 1.1 experience ladder. You’re no longer new to Yii 1.1, but you’re not an experienced Yii developer in the same time. In this case, I strongly encourage you to spare half an hour or so on reading articles in Yii Wiki, that are grouped in this table-of-contents article. These articles contains a lot of useful information, a must-know for all experienced Yii developers, that are mostly not know to those with middle experience

Read More “Understanding… series of articles for Yii 1.1”

Populate record

You can use CActiveRecord::populateRecord method in Yii to create new record basing on existing one. And, as this descriptions means, you must use it like that:

[code language=”php”]
$data = $this->getUser($id);
$model = new Users;
$model = $model->populateRecord($data, FALSE);
[/code]

instead of (last line):

[code language=”php”]
$model->populateRecord($data, FALSE);
[/code]

because populateRecord creates new model instead of modifying existing one!