web:php:cakephp20
Table des matières
CakePHP 2.x
Ces pages contiennent de l'information à propos de CakePHP 2.x.
HTML Helper
Link
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
- 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; }
- 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
- Dans
core.php
, ajouter ou décommenter :Configure::write('Routing.prefixes', array('api'));
- 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.
- Encore dans
route.php
, ajouter les routes nécessaires aux ressources (remplacerressources
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('<', '<', str_replace('>', '>', $var)); } echo $var . "\n</pre>\n"; } }
Références
- Dynamic select box with CakePHP 2.0 → Utilise jQuery pour mettre à jour un select pour une sous-catégorie, quand la catégorie est choisie.
web/php/cakephp20.txt · Dernière modification : 2022/02/02 00:42 de 127.0.0.1