Comme beaucoup d'autres frameworks, CakePHP prend également en charge l'internationalisation. Nous devons suivre ces étapes pour passer d'une seule langue à plusieurs langues.
étape 1
Créez un répertoire de ressources locales distinctlocales.
étape 2
Créez un sous-répertoire pour chaque langue, sous le répertoire srcLocale. Le nom du sous-répertoire peut être un code ISO à deux lettres de la langue ou un nom complet de langue comme en_US, fr_FR etc.
étape 3
Créez un fichier default.po séparé sous chaque sous-répertoire de langue. Ce fichier contient une entrée sous la forme de msgid et msgstr, comme indiqué dans le programme suivant.
msgid "msg" msgstr "CakePHP Internationalization example."
Ici, le msgid est la clé qui sera utilisée dans le fichier modèle de vue et msgstr est la valeur qui stocke la traduction.
étape 4
Dans le fichier de modèle de vue, nous pouvons utiliser le msgid ci-dessus, comme indiqué ci-dessous, qui sera traduit en fonction de la valeur définie des paramètres régionaux.
<?php echo __('msg'); ?>
Les paramètres régionaux par défaut peuvent être définis dans le fichier config/app.php par la ligne suivante.
'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US')
Pour changer le local au moment de l'exécution, nous pouvons utiliser les lignes suivantes.
use Cake\I18n\I18n; I18n::locale('de_DE');
Exemple
Apportez des modifications au fichier config/routes.php comme indiqué dans le programme suivant.
config/routes.php
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); //$builder->connect('/pages', ['controller'=>'Pages','action'=>'display', 'home']); $builder->connect('locale', ['controller'=>'Localizations','action'=>'index']); $builder->fallbacks(); });
Créez un fichier LocalizationsController.php dans src/Controller/LocalizationsController.php. Copiez le code suivant dans le fichier du contr?leur.
src/Controller/LocalizationsController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\I18n\I18n; class LocalizationsController extends AppController { public function index() { if($this->request->is('post')) { $locale = $this->request->getData('locale'); I18n::setLocale($locale); } } } ?>
Créez un répertoire locales dans resourceslocales. Créez 3 répertoires appelés en_US, fr_FR, de_DE sous le répertoire locales. Créez un fichier sous chaque répertoire appelé default.po. Copiez le code suivant dans le fichier respectif.
resources/locales/en_US/default.po
msgid "msg" msgstr "CakePHP Internationalization example."
resources/locales/fr_FR/default.po
msgid "msg" msgstr "Exemple CakePHP internationalisation."
resources/locales/de_DE/default.po
msgid "msg" msgstr "CakePHP Internationalisierung Beispiel."
Créez un répertoire Localisations dans src/Template et sous ce répertoire, créez un fichier View appelé index.php. Copier le code suivant dans ce fichier.
src/Template/Localizations/index.php
Form->create(NULL,array('url'=>'/locale')); echo $this->Form->radio("locale", [ ['value'=>'en_US','text'=>'Internationalisation de CakePHP'], ['value'=>'de_DE','text'=>'German'], ['value'=>'fr_FR','text'=>'French'], ] ); echo $this->Form->button('Change Language'); echo $this->Form->end(); ?> <?php echo __('msg'); ?>
Exécutez l'exemple ci-dessus en visitant l'URL suivante. http://localhost/cakephp4/locale
Sortie
Lors de l'exécution, vous recevrez le résultat suivant.

CakePHP fournit une classe Email pour gérer les fonctionnalités liées au courrier électronique. Pour utiliser la fonctionnalité de messagerie dans n'importe quel contr?leur, nous devons d'abord charger la classe Email en écrivant la ligne suivante.
use Cake\Mailer\Email;
La classe Email fournit diverses méthodes utiles décrites ci-dessous.
Syntaxe |
|
||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Retours |
|
||||||||
Description | Il précise de quelle adresse email ; l'email sera envoyé
|
Syntaxe | à(string|array|null $emailnull, string|null $namenull) |
---|---|
Paramètres |
|
Retours | tableau|$this |
Description | Il précise à qui l'email sera envoyé |
Syntaxe | Envoyer(string|array|null $contentnull) |
---|---|
Paramètres |
|
Retours | tableau |
Description | Envoyer un e-mail en utilisant le contenu, le modèle et la mise en page spécifiés |
Syntaxe | Sujet(string|null $subjectnull) |
---|---|
Paramètres |
|
Retours | tableau|$this |
Description | Obtenir/Définir le sujet |
Syntax | Attachments(string|array|null $attachmentsnull) |
---|---|
Parameters |
|
Returns | array|$this |
Description | Add attachments to the email message |
Syntax | Bcc(string|array|null $emailnull, string|null $namenull) |
---|---|
Parameters |
|
Returns | array|$this |
Description | Bcc |
Syntax | cc( string|array|null $emailnull , string|null $namenull ) |
---|---|
Parameters |
|
Returns | array|$this |
Description | Cc |
Example
Make changes in the config/routes.php file as shown in the following program.
config/routes.php
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']); $builder->connect('/email',['controller'=>'Emails','action'=>'index']); $builder->fallbacks(); });
Create an EmailsController.php file at src/Controller/EmailsController.php. Copy the following code in the controller file.
src/Controller/EmailsController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\Mailer\Email; class EmailsController extends AppController{ public function index(){ $email = new Email('default'); $email->to('abc@gmail.com') ->subject('About') ->send('My message'); } } ?>
Create a directory Emails at src/Template and under that directory, create a View file called index.php. Copy the following code in that file.
src/Template/Emails/index.php
Email Sent.
Before we send any email, we need to configure it. In the below screenshot, you can see that there are two transports, default and Gmail. We have used Gmail transport.
You need to replace the “GMAIL USERNAME” with your Gmail username and “APP PASSWORD” with your applications password. You need to turn on 2-step verification in Gmail and create a new APP password to send email.
config/app.php

Execute the above example by visiting the following URL ? http://localhost/cakephp/email
Output
Upon execution, you will receive the following output.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

TostayCurrentwithPhpDevelopments andBestPractices, suiventyewnewsources likephp.netandphpweekly, engagewithcommunitiesonforumums et conférences, keeptoolingupdated etgradualadoptnewfeatures, etreadorontruttetoopensourceprojects.

PhpBecamepopularforwebDevelopmentDuetoitSeaseOflearning, Samoussentegration withhtml, widespreadhostingsupport, andalargecosystemysteclustingframeworkslikeLaravelandcmsplateformeslikewordpress.itexcelSinlingFormSubMissions, ManagetingSeSeSessions, interactif, interactif

Tosetherighttimezoneinphp, usedate_default_timezone_set () Fonctionnellestartofyourscriptwithavalididentifiersuchas'america / new_york'.1.usedate_default_timezone_set () beforeanydate / timefunctions.20

TovalidateUserInputinPhp, usebuilt-invalidationfunctions likeFilter_var () etFilter_Input (), appliquerareArexpressionsforcustomFormatsSuchasUserNameSorphonEnombers

ThePhpFunctionSerialize () andUnserialize () sont utilisés pour le stobercomplexdatasterDestoRoSintOsTorasandAbackAgain.1.Serialize () C onvertsDatalikECarraysorObjectSraystringContainingTypeandStructureInformation.2

Vous pouvez intégrer le code PHP dans des fichiers HTML, mais assurez-vous que le fichier a une extension de .php afin que le serveur puisse l'analyser correctement. Utilisez des balises standard pour envelopper le code PHP, insérez le contenu dynamique n'importe où dans HTML. De plus, vous pouvez changer plusieurs fois PHP et HTML dans le même fichier pour réaliser des fonctions dynamiques telles que le rendu conditionnel. Assurez-vous de prêter attention à la configuration du serveur et à l'exactitude de la syntaxe pour éviter les problèmes causés par de courtes étiquettes, des erreurs de devis ou des étiquettes de fin omises.

La clé pour écrire le code PHP propre et facile à maintenir réside dans une dénomination claire, des normes suivantes, une structure raisonnable, une bonne utilisation des commentaires et une testabilité. 1. Utilisez des variables claires, des fonctions et des noms de classe, tels que $ userdata et calculatotalprice (); 2. Suivez le style de code unifié standard PSR-12; 3. Divisez la structure du code en fonction des responsabilités et organisez-la à l'aide de catalogues MVC ou de style Laravel; 4. évitez le code de style nouilles et divisez la logique en petites fonctions avec une seule responsabilité; 5. Ajouter des commentaires aux points clés et écrire des documents d'interface pour clarifier les paramètres, les valeurs de retour et les exceptions; 6. Améliorer la testabilité, adopter l'injection de dépendance, réduire l'état mondial et les méthodes statiques. Ces pratiques améliorent la qualité du code, l'efficacité de la collaboration et la facilité de post-maintenance.

Oui, YouCanrunsqlQueriesUsingPhp, et theprocessInvolvesChoosingAdatabaseextenten, ConnectTotheDatabase, ExecutingQueessaFely, andcosingConnectionSwhendOne.Todothis, FirstChooseBetweenmysqliorpDo, avec unplaying
