Outils pour utilisateurs

Outils du site


web:php:cakephp20

CakePHP 2.x

Ces pages contiennent de l'information à propos de CakePHP 2.x.

HTML Helper

echo $this->Html->link("title", array(’controller’ => ’posts’, ’action’ => ’view’, $post[’Post’][’id’]));

FormHelper

Année

echo $this->Form->year('vintage', 1950, date('Y'), array(
	'type' => 'select',
	'label' => false,
	//'empty' => 'Select Year'
	'default' => date('Y')
));

Modèles

Utilisation de constantes

  1. Définir dans le modèle les constantes voulues :
    class ImageType extends AppModel {
      public $name = 'ImageType';
     
      const Thumbnail = 1;
      const Original = 2;
      const Extra = 3;
    }
  2. Dans un controller, exemple TestsController, utiliser les constantes :
    class TestsController extends AppController {
      function view($id = null) {
        App::uses('ImageType', 'Model');
        //....
     
        if ($imageType==ImageType::Thumbnail) {
          // ...
        }
      }
    }

Localisation

Insertion de valeurs dans une phrase:

echo String::insert("Le texte avec un :nombre à l'intérieur", array('nombre' => $variable));

Texte changeant conditionnellement au nombre (pluriel ou pas):

echo String::insert(__n('Il y a :count texte.', 'Il y a :count textes.', $nbTexte), array('count' => $nbTexte));

RESTful API

Mise en place

  1. Dans core.php, ajouter ou décommenter :
    Configure::write('Routing.prefixes', array('api'));
  2. Dans route.php, ajouter les lignes suivantes au début du fichier :
    Router::mapResources('beers');
    Router::parseExtensions('xml', 'json');
    • Omettre le Router::parseExtensions('json'); si les extensions ne sont pas voulus. Voir plus loin la configuration nécessaire.
  3. Encore dans route.php, ajouter les routes nécessaires aux ressources (remplacer ressources par le vrai nom de la ressource / entité au pluriel) :
    Router::connect('/api/ressources',
        array(
            'prefix' => 'api',
            'controller' => 'ressources',
            'action' => 'index',
            '[method]' => 'GET'
        )
    );
     
    Router::connect('/api/ressources/*',
        array(
            'prefix' => 'api',
            'controller' => 'ressources',
            'action' => 'view',
            '[method]' => 'GET'
        )
    );

Routes

POST /users/1234/votes

Dans route.php :

Router::connect('/api/users/:id/votes',
  array(
    'plugin' => null,
    'controller' => 'users',
    'action' => 'vote',
    '[method]' => 'POST'
  ),
  array('id' => Router::ID, 'pass' => 'id')
);

API Key

Sources

Debug code

/**
 * Prints out debug information about given variable.
 *
 * Only runs if debug level is greater than zero.
 *
 * @param boolean $var Variable to show debug information for.
 * @param boolean $showHtml If set to true, the method prints the debug data in a screen-friendly way.
 * @param boolean $showFrom If set to true, the method prints from where the function was called.
 * @link http://book.cakephp.org/view/458/Basic-Debugging
 */
function debug($var = false, $showHtml = false, $showFrom = true) {
  if (Configure::read() > 0) {
    if ($showFrom) {
      $calledFrom = debug_backtrace();
      echo '<strong>' . substr(str_replace(ROOT, '', $calledFrom[0]['file']), 1) . '</strong>';
      echo ' (line <strong>' . $calledFrom[0]['line'] . '</strong>)';
    }
    echo "\n<pre class=\"cake-debug\">\n";
 
    $var = print_r($var, true);
    if ($showHtml) {
      $var = str_replace('<', '&lt;', str_replace('>', '&gt;', $var));
    }
    echo $var . "\n</pre>\n";
  }
}

Source

Références

web/php/cakephp20.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1