


Explication détaillée des exemples de fichiers statiques de fusion PHP
L'article présente en détail la configuration pertinente et le code complet requis pour la fusion de fichiers statiques en PHP, ainsi que les instructions d'utilisation. Il est très détaillé. Il est recommandé ici aux amis dans le besoin
Configurer PHP. ini
Modifier les éléments de configuration (obligatoire) auto_prepend_file = "C:xampphtdocsauto_prepend_file.php"
Modifier les éléments de configuration (facultatif) allow_url_include = On
contenu du fichier auto_prepend_file.php
Le code est le suivant :
<?php /** * 引入static文件 * @param {array|string} 相对路径 * @param {string} 当前执行脚本所在的路径FILE * */ function import_static($files, $path=NULL){ // 更改当前脚本的执行路径 $old_dir = getcwd(); $tmp_dir = (isset($path)) ? dirname($path): dirname(FILE); chdir($tmp_dir); // 整理包含文件 if (!is_array($files)) { $tmp = array(); $tmp[] = $files; $files = $tmp; } // 发送头信息 if (isset($files[0])) { if (stripos($files[0], '.js') !== false) { $header_str = 'Content-Type: text/javascript'; } elseif (stripos($files[0], '.css') !== false) { $header_str = 'Content-Type: text/css'; } if (!ob_get_contents()) { header($header_str); } } // 引入包含文件 foreach($files as $key=>$value) { require_once($value); } // 改回当前脚本的执行路径 chdir($old_dir); } ?>
Comment utiliser
Le code est le suivant :
"a.js"、"b.js"和"../c.js"是待合并的JS文件,将其合并为base.js.php,则base.js.php中的代码如下: <?php import_static(array( 'a.js', 'b.js', '../c.js', '../moduleB/all.js.php' // 也可引用.php文件 ), FILE); ?>
Utiliser
Avant que le produit ne soit mis en ligne, utilisez le fichier de traitement par lots pour le traitement, en effectuant principalement deux aspects du travail
1 Sortie "*.js.php" vers le "*. js" et supprimez "*.js.php". Ligne de commande : php *.js.php > *.js
2. Remplacez la référence à "*.js.php" dans la page HTML par "*.js". preg_replace()
PS : La fonction import_static résout le problème du traitement include() des chemins relatifs en PHP.
L'exemple de code PHP suivant fonctionne pour aider les utilisateurs à réinitialiser leur mot de passe. requestResetPassword reçoit la demande de l'utilisateur pour réinitialiser son mot de passe et effectue les vérifications correspondantes. Pour une meilleure réutilisation, j'ai attribué séparément l'opération de réinitialisation du mot de passe à une nouvelle fonction resetPassword. Après avoir modifié le mot de passe, j'ai appelé sendEmail pour envoyer un e-mail de notification à l'utilisateur.
/** * 用户请求重置密码的接收器 */ function requestResetPassword() { //检查用户是否存在 if( !checkUserExists( $_GET['userid'] ) ) { exit('抱歉,用户不存在,请确认用户帐号。'); } resetPassword( $_GET['userid'] ); //最后向用户发送一封邮件 sendEmail( $_GET['userid'], '重置密码成功', '新的密码是xxxx' ); exit('新密码已经发送到你的邮箱。'); } /** * 帮助用户重置密码 */ function resetPassword( $userid ) { //检查用户是否存在 if( !checkUserExists( $userid ) ) { return false; } //进行重置用户密码的操作 //略... return true; } /** * 向用户发送一封邮件 */ function sendEmail( $userid, $title, $content ) { //检查用户是否存在 if( !checkUserExists( $userid ) ) { return false; } //发送邮件操作 //略... return true; } /** * 检查某个用户是否存在 */ function checkUserExists( $userid ) { $user = getUserInfo( $userid ); return !empty( $user ); } /** * 获取某个用户的数据 */ function getUserInfo( $userid ) { //假设我有一个query的函数,它用来查询数据库并返回数据 $user = query( "SELECT * FROM `user` WHERE `uid`=" . intval( $userid ) ); return is_array( $user ) ? $user : array() ; }
Le problème maintenant est que ces trois fonctions utilisent toutes la fonction checkUserExists en même temps pour vérifier que l'utilisateur n'existe pas. La base de données est interrogée trois fois, ce qui entraîne une surcharge supplémentaire.
Si vous souhaitez supprimer un checkUserExists parmi les trois, cela semble possible. Cependant, si certaines fonctions appellent ultérieurement resetPassword ou sendEmail et que l'utilisateur n'existe pas, une erreur peut se produire dans le système.
Une autre solution consiste à écrire la logique de resetPassword dans requestResetPassword, et un peu plus tard, à écrire également la logique de sendEmail. De cette façon, les appels de fonction sont réduits, les requêtes de base de données deviennent uniques et les performances sont améliorées. Cependant, les fonctions de réinitialisation des mots de passe et d'envoi d'e-mails ne seront pas réutilisables et violeront le principe de responsabilité unique, et la complexité du code augmentera également.
Cependant, comme la séparation et la réutilisabilité des fonctions sont très bonnes, si les performances réelles sont affectées, vous pouvez envisager d'utiliser la mise en cache pour réduire les requêtes de base de données. J'ai modifié la fonction checkUserExists qu'ils partagent :
/** * 检查某个用户是否存在 */ function checkUserExists( $userid ) { //增加一个缓存,用以记录检查用户的结果 static $cache = array(); //检查当前用户是否已经检查过一次 if( isset( $cache[ $userid ] ) ) { return $cache[ $userid ]; } $user = getUserInfo( $userid ); //把结果记录到缓存中 $cache[ $userid ] = !empty( $user ); return $cache[ $userid ]; }
Vous pouvez. modifiez également la fonction getUserInfo de la même manière.
Vous pouvez voir ici que lorsque la réutilisabilité du code est améliorée, il est très simple d'améliorer les performances, et les goulots d'étranglement des performances sont également faciles à découvrir et à modifier.
Bien que cet exemple n'ait pas un impact suffisamment important sur les performances, certains ont un impact plus important, comme le parcours, je peux encapsuler le parcours dans une fonction pour le réutiliser et l'utiliser plusieurs fois. Ces dépenses n’ont pas eu un impact aussi important que prévu sur mon projet, ou alors elles ont été minimes. Je préfère donc consacrer mon temps à améliorer la réutilisabilité et la maintenabilité du code, plutôt que de me soucier de gaspiller davantage de performances. Si les performances réelles ne répondent vraiment pas aux exigences, vous pouvez également envisager d'augmenter la configuration matérielle.
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

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et
