<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blogbonzo: Matteo Magni &#187; cakePHP</title>
	<atom:link href="http://blog.ilbonzo.org/category/programmazione/php/cakephp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ilbonzo.org</link>
	<description>Consulente Informatico, Web Developer &#38; System Administrator</description>
	<lastBuildDate>Wed, 09 Dec 2009 13:07:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>CakePHP, Blog[2]</title>
		<link>http://blog.ilbonzo.org/2008/02/11/cakephp-blog2/</link>
		<comments>http://blog.ilbonzo.org/2008/02/11/cakephp-blog2/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 12:31:51 +0000</pubDate>
		<dc:creator>Bonzo</dc:creator>
				<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[cakePHP]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/2008/02/11/cakephp-blog2/</guid>
		<description><![CDATA[Andiamo avanti con la realizzazione del blog scritto con CakePHP.
Devo creare il meccanismo la creazione, modifica e eliminzaione dei post.
Aggiungere i Post
/app/controllers/posts_controller.php

< ?php
class PostsController extends AppController
{
    var $name = 'Posts';
    function index()
    {
        $this->set('posts', $this->Post->findAll());
    }
	function [...]]]></description>
			<content:encoded><![CDATA[<p>Andiamo avanti con la realizzazione del blog scritto con <a href="http://cakephp.org" class="Tips3" title="CakePHP framework web">CakePHP</a>.</p>
<p>Devo creare il meccanismo la creazione, modifica e eliminzaione dei post.</p>
<p><strong>Aggiungere i Post</strong><br />
<em>/app/controllers/posts_controller.php</em><br />
<code><br />
< ?php<br />
class PostsController extends AppController<br />
{<br />
    var $name = 'Posts';<br />
    function index()<br />
    {<br />
        $this->set('posts', $this->Post->findAll());<br />
    }<br />
	function view($id = null)<br />
    {<br />
        $this->Post->id = $id;<br />
        $this->set('post', $this->Post->read());<br />
    }<br />
	function add()<br />
    {<br />
        if (!empty($this->data))<br />
        {<br />
            if ($this->Post->save($this->data))<br />
            {<br />
                $this->flash('Your post has been saved.','/posts');<br />
            }<br />
        }<br />
    }<br />
}<br />
?><br />
</code></p>
<p>Il controller guarda che i dati inviati via POST non siano vuoti, se non lo sono utilizza il metodo per salvare i dati. Con il metodo flash è possibile visualizzare un messaggio che dice se i dati sono stati salvati.<br />
<strong><br />
Creo la vista add</strong><br />
<em>/app/views/posts/add.thtml</em><br />
<code><br />
< &lt;h1&gt;Add Post&lt;/h1&gt;<br />
&lt;form method="post" action="<?php echo $html->url('/posts/add')?>"&gt;<br />
    &lt;p&gt;<br />
        Title:<br />
        < ?php echo $html->input('Post/title', array('size' => '40'))?><br />
        < ?php echo $html->tagErrorMsg('Post/title', 'Title is required.') ?><br />
    &lt;/p&gt;<br />
    &lt;p&gt;<br />
        Body:<br />
        < ?php echo $html->textarea('Post/body', array('rows'=>'10')) ?><br />
        < ?php echo $html->tagErrorMsg('Post/body', 'Body is required.') ?><br />
    &lt;/p&gt;<br />
    &lt;p&gt;<br />
        < ?php echo $html->submit('Save') ?><br />
    &lt;/p&gt;<br />
&lt;/form&gt;<br />
</code></p>
<p>ecco come si visualizza la pagina:<br />
<em>http://localhost/cake/posts/add</em><br />
<a href='http://blog.ilbonzo.org/wp-content/uploads/2008/02/003_add_post.png' title='creazione post' rel='lightbox'><img src='http://blog.ilbonzo.org/wp-content/uploads/2008/02/003_add_post.thumbnail.png' alt='creazione post' /></a></p>
<p><strong>Modifico il modello Post</strong><br />
<em>/app/models/post.php</em><br />
aggiungo la validazione dei dati.</p>
<p><code><br />
< ?php<br />
class Post extends AppModel<br />
{<br />
    var $name = 'Post';<br />
    var $validate = array(<br />
        'title'  => VALID_NOT_EMPTY,<br />
        'body'   => VALID_NOT_EMPTY<br />
    );<br />
}<br />
?></code></p>
<p>L&#8217;array $validate dice a Cake come validare i dati quando è chiamato il metodo save(). I valori per queste chiave si possono vedere in  /cake/libs/validators.php.</p>
<p><code><br />
/**<br />
 * Not empty.<br />
 */<br />
	define('VALID_NOT_EMPTY', '/.+/');<br />
/**<br />
 * Numbers [0-9] only.<br />
 */<br />
	define('VALID_NUMBER', '/^[-+]?\\b[0-9]*\\.?[0-9]+\\b$/');<br />
/**<br />
 * A valid email address.<br />
 */<br />
	define('VALID_EMAIL', '/\\A(?:^([a-z0-9][a-z0-9_\\-\\.\\+]*)@([a-z0-9][a-z0-9\\.\\-]{0,63}\\.(com|org|net|biz|info|name|net|pro|aero|coop|museum|[a-z]{2,4}))$)\\z/i');<br />
/**<br />
 * A valid year (1000-2999).<br />
 */<br />
	define('VALID_YEAR', '/^[12][0-9]{3}$/');<br />
</code></p>
<p>Ecco cosa succede se si prova ad inserire un post senza il titolo:</p>
<p><a href='http://blog.ilbonzo.org/wp-content/uploads/2008/02/004_cake_title_request.png' title='title request' rel='lightbox'><img src='http://blog.ilbonzo.org/wp-content/uploads/2008/02/004_cake_title_request.thumbnail.png' alt='title request' /></a></p>
<p><strong>Cancellare i post, azione delete</strong><br />
<em>/app/controllers/posts_controller.php</em></p>
<p><code><br />
< ?php<br />
class PostsController extends AppController<br />
{<br />
    var $name = 'Posts';<br />
    function index()<br />
    {<br />
        $this->set('posts', $this->Post->findAll());<br />
    }<br />
	function view($id = null)<br />
    {<br />
        $this->Post->id = $id;<br />
        $this->set('post', $this->Post->read());<br />
    }<br />
	function add()<br />
    {<br />
        if (!empty($this->data))<br />
        {<br />
            if ($this->Post->save($this->data))<br />
            {<br />
                $this->flash('Your post has been saved.','/posts');<br />
            }<br />
        }<br />
    }<br />
	function delete($id)<br />
	{<br />
		$this->Post->del($id);<br />
		$this->flash('The post with id: '.$id.' has been deleted.', '/posts');<br />
	}<br />
}<br />
?><br />
</code></p>
<p>Aggiungo il link delete nella vista index<br />
<em>/app/views/posts/index.thtml</em></p>
<p><code><br />
< ?php<br />
echo $html->link(<br />
                'Delete',<br />
                "/posts/delete/{$post['Post']['id']}",<br />
                null,<br />
                'Are you sure?'<br />
            )<br />
?><br />
</code></p>
<p>se clicco mi si apre un alert javascript che mi chiede se sono sicuro.<br />
Se disabilito javascript nel browser il post viene cancellato senza richiesta di conferma.</p>
<p><strong>Modificare i post, azione edit</strong><br />
<em>/app/controllers/posts_controller.php</em></p>
<p><code><br />
	function edit($id = null)<br />
	{<br />
		if (empty($this->data))<br />
		{<br />
			$this->Post->id = $id;<br />
			$this->data = $this->Post->read();<br />
		}<br />
		else<br />
		{<br />
			if ($this->Post->save($this->data['Post']))<br />
			{<br />
				$this->flash('Your post has been updated.','/posts');<br />
			}<br />
		}<br />
	}<br />
</code></p>
<p><strong>Creo la vista edit</strong><br />
<em>/app/views/posts/edit.thtml</em></p>
<p><code><br />
&lt;h1&gt;Edit Post&lt;/h1&gt;<br />
&lt;form method="post" action="< ?php echo $html->url('/posts/edit')?>"&gt;<br />
    < ?php echo $html->hidden('Post/id'); ?><br />
    &lt;p&gt;<br />
        Title:<br />
        < ?php echo $html->input('Post/title', array('size' => '40'))?><br />
        < ?php echo $html->tagErrorMsg('Post/title', 'Title is required.') ?><br />
    &lt;/p&gt;<br />
    &lt;p&gt;<br />
        Body:<br />
        < ?php echo $html->textarea('Post/body', array('rows'=>'10')) ?><br />
        < ?php echo $html->tagErrorMsg('Post/body', 'Body is required.') ?><br />
    &lt;/p&gt;<br />
    &lt;p&gt;<br />
        < ?php echo $html->submit('Save') ?><br />
    &lt;/p&gt;<br />
&lt;/form&gt;<br />
</code></p>
<p>aggiungo il link edit nella vista index<br />
<em>/app/views/posts/index.thtml</em></p>
<p><code><br />
 < ?php echo $html->link('Edit', '/posts/edit/'.$post['Post']['id']);?><br />
</code></p>
<p><strong>Modifica pagina di home</strong><br />
<em>/app/config/routes.php</em></p>
<p>Nel file routes.php ci sono le configurazioni per i controller e le relative viste che si devono aprire per i vari indirizzi.</p>
<p>Modifico commentando<br />
<code><br />
	//$Route->connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));<br />
</code><br />
e settando:<br />
<code><br />
/**<br />
* Collegamento alla pagina index<br />
*<br />
*/<br />
	$Route->connect ('/', array('controller'=>'posts', 'action'=>'index'));<br />
</code><br />
Così andando a http://localhost/cake mi apre direttamente la vista index del controller posts.</p>
<p>Ecco fatto, ora il sistema di gestione dei Post è finito, il prossimo obbiettivo è implementare un sistema di gestione degli utenti che possono inviare i post.</p>
<p>Gabba Gabba Hey<br />
Bonzo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2008/02/11/cakephp-blog2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CakePHP, Blog [1]</title>
		<link>http://blog.ilbonzo.org/2008/02/05/cakephp-blog-1/</link>
		<comments>http://blog.ilbonzo.org/2008/02/05/cakephp-blog-1/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 12:51:41 +0000</pubDate>
		<dc:creator>Bonzo</dc:creator>
				<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/2008/02/05/cakephp-blog-1/</guid>
		<description><![CDATA[Comincio a fare &#8220;sul serio&#8221; con l&#8217;uso di CAkePHP, ora proverò a creare un blog.
Creazione database

Per prima cosa
Ecco alcuni accorgimenti sulle regole che devono seguire le tabelle (naming convention):

I nomi devono essere in plurale inglese (posts ad esempio), in modo che i modelli corrispondenti abbiano nomi in singolare;
tutte le tabelle devono avere una chiave primaria [...]]]></description>
			<content:encoded><![CDATA[<p>Comincio a fare &#8220;sul serio&#8221; con l&#8217;uso di CAkePHP, ora proverò a creare un blog.</p>
<p><strong>Creazione database</strong></p>
<blockquote><p>
Per prima cosa<br />
Ecco alcuni accorgimenti sulle regole che devono seguire le tabelle (naming convention):</p>
<ul>
<li>I nomi devono essere in plurale inglese (posts ad esempio), in modo che i modelli corrispondenti abbiano nomi in singolare;</li>
<li>tutte le tabelle devono avere una chiave primaria chiamata id;
        </li>
<li>le chiavi esterne utilizzate per costruire le relazioni tra le tabelle devono essere nomiate utilizzando il singolare della tabella a cui fanno riferimento seguito da _id (post_id per esempio);</li>
<li> è possibile includere i campi created e modified che verranno automaticamente aggiornati da CakePHP quando si opererà sui record.
</li>
</ul>
<p>Cake contiente una classe <em>inflections</em> che si occupa di ottenere i plurali dei vari nomi.</p>
</blockquote>
<p>Creo il database <strong>blog_cake</strong>.</p>
<p>Creo la tabella <strong>posts</strong>.<br />
<code><br />
/* First, create our posts table: */<br />
CREATE TABLE posts (<br />
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,<br />
    title VARCHAR(50),<br />
    body TEXT,<br />
    created DATETIME DEFAULT NULL,<br />
    modified DATETIME DEFAULT NULL<br />
);<br />
</code><br />
<code><br />
/* Then insert some posts for testing: */<br />
INSERT INTO posts (title,body,created)<br />
    VALUES ('il titolo', 'Questo è il contenuto di un post.', NOW());<br />
INSERT INTO posts (title,body,created)<br />
    VALUES ('secondo titolo', 'Altro contenuto di un post.', NOW());<br />
INSERT INTO posts (title,body,created)<br />
    VALUES ('Divetimento', 'Divertiamoci.', NOW());<br />
</code></p>
<p>Imposto i dati di connessione al database nel file <em>/app/config/database.php</em><br />
<code><br />
var $default = array('driver'   => 'mysql',<br />
                     'connect'  => 'mysql_pconnect',<br />
                     'host'     => 'localhost',<br />
                     'login'    => '<utente>',<br />
                     'password' => '
<password>',<br />
                     'database' => 'blog_cakel' );
</password></utente></code></p>
<p>Cake contiene una Classe AppModel da cui si parte per ottenere i nuovi modelli, estendendo tale classe di partenza.</p>
<p><strong>Creo il modello Post:</strong></p>
<p><em>/app/models/post.php</em></p>
<p><code><br />
< ?php<br />
class Post extends AppModel<br />
{<br />
    var $name = 'Post';<br />
}<br />
?><br />
</code></p>
<p><strong>Creo il controller Post</strong><br />
Dato che abbiamo deciso di seguire le convenzioni sui nomi sarà possibile accedere ai modelli implementati direttamente attraverso $this->NOME_MODELLO.<br />
<em>/app/controllers/posts_controller.php</em></p>
<p><code>< ?php<br />
class PostsController extends AppController<br />
{<br />
    var $name = 'Posts';<br />
}<br />
?><br />
</code></p>
<p>Ci aggiungo l&#8217;azione index</p>
<p><code><br />
< ?php<br />
class PostsController extends AppController<br />
{<br />
    var $name = 'Posts';<br />
    function index()<br />
    {<br />
        $this->set('posts', $this->Post->findAll());<br />
    }<br />
}<br />
?></code></p>
<p>Il metodo index registra un array con tutti i post inseriti utilizzando il metodo set, che rende disponibile questo array alla vista.</p>
<p><strong>Creo la vista index</strong><br />
<em><br />
/app/views/posts/index.thtml</em></p>
<p><code><br />
&lt;h1&gt;Blog&lt;/h1&gt;<br />
    < ?php foreach ($posts as $post): ?><br />
    &lt;dl&gt;<br />
		&lt;dt&gt;<br />
		&lt;h3&gt;< ?php echo $html->link($post['Post']['title'], "/posts/view/".$post['Post']['id']); ?>&lt;/h3&gt;<br />
        < ?php<br />
			echo $post['Post']['id'];<br />
			echo '&lt;br/&gt;';<br />
			echo $post['Post']['created'];<br />
			echo '&lt;br/&#038;gt';<br />
			echo '&lt;br/&gt;';<br />
		?><br />
		&lt;/dt&gt;<br />
		&lt;dd&gt;<br />
		< ?php<br />
			echo $post['Post']['body'];<br />
		?><br />
		&lt;/dd&gt;<br />
	&lt;/dl&gt;<br />
   < ?php endforeach; ?><br />
</code></p>
<p>Vado con il browser all&#8217;indirizzo:<br />
<em>http://localhost/cake/posts/</em><br />
ed ecco il risultato:</p>
<p><a href='http://blog.ilbonzo.org/wp-content/uploads/2008/01/001_post.PNG' title='cakePHP blog' rel='lightbox'><img src='http://blog.ilbonzo.org/wp-content/uploads/2008/01/001_post.thumbnail.PNG' alt='cakePHP blog' /></a></p>
<p>Ora aggiungo l&#8217;azione view al controller, per gestire la visualizzazione di un singolo post.</p>
<p><code><br />
< ?php<br />
class PostsController extends AppController<br />
{<br />
    var $name = 'Posts';<br />
    function index()<br />
    {<br />
        $this->set('posts', $this->Post->findAll());<br />
    }<br />
	function view($id = null)<br />
    {<br />
        $this->Post->id = $id;<br />
        $this->set('post', $this->Post->read());<br />
    }<br />
}<br />
?><br />
</code></p>
<p><strong>Creo la vista view</strong><br />
<em>/app/views/posts/view.thtml</em></p>
<p><code><br />
&lt;h2&gt;< ?php echo $post['Post']['title']?>&lt;/h2&gt;<br />
&lt;p&gt;&lt;small&gt;Created: < ?php echo $post['Post']['created']?>&lt;/small&gt;&lt;/p&gt;<br />
&lt;p&gt;< ?php echo $post['Post']['body']?>&lt;/p&gt;<br />
</code></p>
<p>Ora se clicco sul titolo del primo post, mi sposto all&#8217;indirizzo:<br />
<em>http://localhost/cake/posts/view/1</em></p>
<p>e vedo la vista view di questo post.</p>
<p><a href='http://blog.ilbonzo.org/wp-content/uploads/2008/02/002_single_post1.png' title='post singolo' rel='lightbox'><img src='http://blog.ilbonzo.org/wp-content/uploads/2008/02/002_single_post1.thumbnail.png' alt='post singolo' /></a></p>
<p>Così ho completato tutte le pagine per visualizzare il blog, la prossima volta passo alle pagine per inserimento, modifica e cancellazione dei post.</p>
<p>Gabba Gabba Hey<br />
Bonzo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2008/02/05/cakephp-blog-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>CakePHP, installazione</title>
		<link>http://blog.ilbonzo.org/2008/01/28/cakephp-installazione/</link>
		<comments>http://blog.ilbonzo.org/2008/01/28/cakephp-installazione/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 11:16:06 +0000</pubDate>
		<dc:creator>Bonzo</dc:creator>
				<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://blog.ilbonzo.org/2008/01/28/cakephp-installazione/</guid>
		<description><![CDATA[Visto che conosco e lavoro soprattutto con PHP ma mi affascina molto Ruby on Rails ho deciso di provare CakePHP, framework web PHP da molti paragonato al celebre framework scritto in Ruby.

Installazione di cakePHP:
Manuale cakePHP
Requisiti:

An HTTP server (like Apache) with the following enabled: sessions, mod_rewrite (not absolutely necessary but preferred)
PHP 4.3.2 or greater. Yes, CakePHP [...]]]></description>
			<content:encoded><![CDATA[<p>Visto che conosco e lavoro soprattutto con PHP ma mi affascina molto <a href="http://www.rubyonrails.org/" class="Tips3" title="Framework ruby">Ruby on Rails</a> ho deciso di provare <a href="http://cakephp.org" class="Tips3" title="framework PHP">CakePHP</a>, framework web PHP da molti paragonato al celebre framework scritto in Ruby.</p>
<p><img src='http://blog.ilbonzo.org/wp-content/uploads/2008/01/cake-logo.png' alt='cakePHP' /></p>
<h3>Installazione di cakePHP:</h3>
<p><a href="http://manual.cakephp.org/chapter/installing" class="Tips3" title="Manuale cakePHP">Manuale cakePHP</a></p>
<p><strong>Requisiti:</strong></p>
<ul>
<li>An HTTP server (like Apache) with the following enabled: sessions, mod_rewrite (not absolutely necessary but preferred)</li>
<li>PHP 4.3.2 or greater. Yes, CakePHP works great in either PHP 4 or 5.</li>
<li>A database engine (right now, there is support for MySQL 4+, PostgreSQL and a wrapper for ADODB).</li>
</ul>
<p>Userò Apache, PHP 5 e MySQL.</p>
<p><strong>Scaricare la versione stabile e scompattarla</strong></p>
<p><a href="http://cakeforge.org/frs/?group_id=23&#038;release_id=371" class="Tips3" title="cakePHP stable release">cake_1.1.19.6305.tar.gz</a></p>
<p>Esistono due tipi di configurazione per lo sviluppo e per la produzione.</p>
<p><strong>Produzione</strong><br />
In ambiente di produzione è meglio installare CakePHP in una directory indipendente configurando poi il Web server in modo che la cartella di root corrisponda a /path/di/cakephp/app/webroot.</p>
<p><strong>Sviluppo</strong><br />
In ambiente di sviluppo è sufficiente scompattare i sorgenti nella directory di root, all&#8217;interno della directory cake.</p>
<p>Io utilizzerò la configurazione per lo sviluppo.</p>
<p><strong>Schema applicazione</strong><br />
/app<br />
   &nbsp;&nbsp;&nbsp;/config<br />
   &nbsp;&nbsp;&nbsp;/controllers<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/components<br />
   &nbsp;&nbsp;&nbsp;/models<br />
   &nbsp;&nbsp;&nbsp;/plugins<br />
   &nbsp;&nbsp;&nbsp;/tmp<br />
   &nbsp;&nbsp;&nbsp;/vendors<br />
   &nbsp;&nbsp;&nbsp;/views<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/elements<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/errors<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/helpers<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/layouts<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/pages<br />
   &nbsp;&nbsp;&nbsp;/webroot<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/css<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/files<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/img<br />
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/js<br />
   &nbsp;&nbsp;&nbsp;/index.php<br />
/cake<br />
/docs<br />
/vendors<br />
/index.php</p>
<p><strong>Configurazione Apache</strong><br />
attivo il modulo mod_rewrite ed ed utilizzo il file .htaccess fornito all&#8217;interno dell&#8217;installazione standard per poter utilizzare URL puliti e chiari da leggere che non facciano uso di query string.<br />
<a href="http://server.html.it/articoli/leggi/2033/riscrivere-gli-url-con-il-modulo-modrewrite-di-apa/" class="Tips3" title="configurare mod_rewrite">riscrivere gli url con il modulo modrewrite di apache</a></p>
<p><strong>Configurazione database</strong><br />
E&#8217; necessario configurare l&#8217;accesso al database. Per fare questo bisogna modificare il file app/config/database.php.default e rinominarlo in database.php, modificando i valori dell&#8217;array $default.<br />
<code><br />
var $default = array('driver'   => 'mysql',<br />
                     'connect'  => 'mysql_connect',<br />
                     'host'     => 'localhost',<br />
                     'login'    => 'user',<br />
                     'password' => 'password',<br />
                     'database' => 'project_name',<br />
                     'prefix'   => '');<br />
</code></p>
<p>Creo il database cake</p>
<p>Se vado a http://localhost/cake vedo:</p>
<blockquote><p>
CakePHP Rapid Development</p>
<p>Your database configuration file is present.</p>
<p>Cake is able to connect to the database.</p>
<p>CakePHP release information is on CakeForge<br />
Read the release notes and get the latest version<br />
Editing this Page</p>
<p>To change the content of this page, create: /app/views/pages/home.thtml.<br />
To change its layout, create: /app/views/layouts/default.thtml.<br />
See the views section of the manual for more info<br />
You can also add some CSS styles for your pages at: app/webroot/css/.
</p></blockquote>
<p>Ora sono pronto per scrivere la mia prima applicazione con CakePHP.</p>
<p>Gabba gabba hey<br />
Bonzo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ilbonzo.org/2008/01/28/cakephp-installazione/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
