Maison > Télécharger >  Téléchargement de la bibliothèque

  • Montrons comment utiliser ce package d'extension pour générer automatiquement des documents API pour le projet. Le principe est de scanner routes.php pour générer les documents API correspondants pour la route spécifiée. Par exemple, notre fichier de routage définit une route comme suit : Route::get('api/v1/index', 'ApiController@index');. Cette route correspond à La méthode du contrôleur est définie comme suit : /**  * API首页  *  * 欢迎来到Laravel学院,Laravel学院致力于提供优质Laravel中文学习资源  *  */ public function index() { }Il convient de souligner que le générateur d'API Laravel génère les informations de description correspondantes de l'API via les annotations sur la méthode d'action. Nous utilisons la commande api:generate fournie par le package d'extension pour implémenter la génération de documents API : php artisan api:generate --routePrefix=api/v1/*Cette commande signifie analyser les règles de routage correspondant à api/v1/* et générer des documents API pour les méthodes de contrôleur correspondantes,

    Autres bibliothèques15522017-12-19
  • <?php function randpw($len=8,$format='ALL'){ $is_abc = $is_numer = 0; $password = $tmp =''; switch($format){ case 'ALL': $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; case 'CHAR': $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; break; case 'NUMBER': $chars='0123456789'; break; default : $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; } // www.jb51.net mt_srand((double)microtime()*1000000*getmypid()); while(strlen($password)<$len){ $tmp =substr($chars,(mt_rand()%strlen($chars)),1); if(($is_numer <> 1 && is_numeric($tmp) && $tmp > 0 )|| $format == 'CHAR'){ $is_numer = 1; } if(($is_abc <> 1 && preg_match('/[a-zA-Z]/',$tmp)) || $format == 'NUMBER'){ $is_abc = 1; } $password.= $tmp; } if($is_numer <> 1 || $is_abc <> 1 || empty($password) ){ $password = randpw($len,$format); } return $password; } for($i = 0 ; $i < 10; $i++){ echo randpw(8,'NUMBER'); echo "<br>"; }Qu'il s'agisse d'une application web, d'un WAP ou d'une application mobile, les nombres aléatoires ont leur place. Dans plusieurs petits projets avec lesquels j'ai récemment été en contact, j'ai souvent besoin de gérer des nombres aléatoires ou des tableaux aléatoires. Ce que je vous apporte, c'est RandomLib-master, une bibliothèque PHP pour générer des nombres aléatoires. téléchargez-le directement si vous en avez besoin.

    Autres bibliothèques24482017-12-19
  • [php] view plain copy <?php       class StackTest extends PHPUnit_Framework_TestCase       {           public function testEmpty()           {               $stack = array();               $this->assertEmpty($stack);               return $stack;           }           /**            * @depends testEmpty            */           public function testPush(array $stack)           {               array_push($stack, 'foo');               $this->assertEquals('foo', $stack[count($stack)-1]);               $this->assertNotEmpty($stack);               return $stack;           }           /**            * @depends testPush            */           public function testPop(array $stack)           {               $this->assertEquals('foo', array_pop($stack));               $this->assertEmpty($stack);           }       }                              ?>1. Qu'est-ce que les tests unitaires ? 【Encyclopédie Baidu】Les tests unitaires consistent à vérifier et à vérifier la plus petite unité testable dans le logiciel. est un petit morceau de code écrit par le développeur pour vérifier si une fonction petite et claire du code testé est correcte. 2. Quelle est la fonction ? 【Non-sens】Vérifiez la faisabilité et la stabilité des logiciels et des programmes. Les tests unitaires peuvent éviter des problèmes répétés et redondants lors des itérations, des mises à niveau, etc. Évitez d'affecter votre logique lorsque d'autres modifient le code3 Quels programmes nécessitent des tests unitaires (PHP) ? 【Idéal】Le test unitaire idéal doit couvrir tous les chemins possibles dans le programme, y compris les chemins corrects et incorrects. Un test unitaire couvre généralement un chemin spécifique dans une fonction ou une méthode. [Réalité] Les fonctions du modèle, de l'assistant et du contrôleur doivent être testées et les chemins couvrent toutes les possibilités

    Autres bibliothèques11302017-12-19
  • #!/usr/bin/env php <?php /**  * phpDocumentor  *  * PHP Version 5.3  *  * @copyright 2010-2013 Mike van Riel / Naenius (http://www.naenius.com)  * @license   http://www.opensource.org/licenses/mit-license.php MIT  * @link      http://phpdoc.org  */trigger_error('phpDocumentor2 doit être exécuté à partir du fichier phpdoc, pas de phpdoc.php', E_USER_DEPRECATED);require_once __DIR__.'/phpdoc';phpDocumentor 2 est un outil qui peut analyser le code source php et blocs de commentaires et génération de documentation. Inspiré de phpdocumentor 1 et javadoc, il continue d'innover en utilisant de nouvelles technologies et prend en charge de nouvelles fonctionnalités de php. Caractéristiques de phpDocumentor 2 : Compatible avec php5.3, prenant entièrement en charge les espaces de noms et les fermetures, etc. La reconnaissance prend en charge n'importe quelle balise, ainsi que certaines balises ajoutées (telles que @link). Vitesse de traitement plus rapide. Par rapport à phpDocumentor 1, le temps de traitement sous Zend Framework a été considérablement réduit. Faible consommation de mémoire, la consommation de mémoire des petits, moyens et grands projets est respectivement inférieure à 20 Mo, 40 Mo et 100 Mo. Analyse incrémentale. Si vous disposez du fichier structure.xml obtenu en exécutant phpdoc auparavant, la vitesse de régénération du document après des modifications mineures sera augmentée de 80%. C'est facile de créer un modèle, juste 1 petite étape et éditer 3 fichiers. Compatible avec la ligne de commande de 1ère génération. Par exemple --directory, --file et --target Traitement en deux étapes. Générez d'abord un fichier de structure. Vous pouvez formater les informations pertinentes en fonction de ce fichier et utiliser vos propres outils pour afficher les informations !.

    Autres bibliothèques15022017-12-19
  • Samsui est une bibliothèque de création d'objets PHP utiles pour créer des données de test pour vos applications. Avec Samsui, vous pouvez rapidement créer des applications prototypes et générer les données dont vous avez besoin pour tester le prototype. use Samsui\Factory;   $factory = new Factory();   // define an object quickly $factory->define('person')     ->sequence('personId')     ->attr('firstName', 'James')     ->attr('lastName', 'Clark')     ->attr('email', function ($i, $o) {         return strtolower($o->firstName . '.' . $o->lastName . '@example.com');     })     ->attr('createdTime', function () {         return time();     });

    Autres bibliothèques12772017-12-19
  • La bibliothèque <?php    session_start();    header("Content-type:image/png");    $img_width=100;    $img_height=20;    srand(microtime()*100000);    for($i=0;$i<4;$i++)    {         $new_number.=dechex(rand(0,15));    }    $_SESSION[check_auth]=$new_number;    $new_number=imageCreate($img_width,$img_height);//创建图象    ImageColorAllocate($new_number,255,255,255);  //设置背景色为白色    for($i=0;$i<strlen($_SESSION[check_auth]);$i++)    {        $font=mt_rand(3,5);        $x=mt_rand(1,8) + $img_width*$i/4;        $y=mt_rand(1,$img_height/4);        $color=imageColorAllocate($new_number,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//设置字符颜色        imageString($new_number,$font,$x,$y,$_SESSION[check_auth][$i],$color);//输出字符    }    ImagePng($new_number);    ImageDestroy($new_number); ?>GD est une bibliothèque très puissante pour la manipulation d'images en PHP. Ajoutez d'abord une ligne de référence dans php.ini : extension=php_gd2.dllRedémarrez Apache. Créez une page de test var_dump(gd_info()); les données de sortie montrent que la référence à la bibliothèque GD a réussi. form auth.html

    Bibliothèque de codes de vérification59472017-12-19
  • <?php /**  * A Compatibility library with PHP 5.5's simplified password hashing API.  *  * @author Anthony Ferrara <ircmaxell@php.net>  * @license http://www.opensource.org/licenses/mit-license.html MIT License  * @copyright 2012 The Authors  */ namespace {     if (!defined('PASSWORD_BCRYPT')) {         /**          * PHPUnit Process isolation caches constants, but not function declarations.          * So we need to check if the constants are defined separately from           * the functions to enable supporting process isolation in userland          * code.          */         define('PASSWORD_BCRYPT', 1);         define('PASSWORD_DEFAULT', PASSWORD_BCRYPT);         define('PASSWORD_BCRYPT_DEFAULT_COST', 10);     }Je crois que lorsque de nombreux développeurs PHP entrent en contact avec PHP pour la première fois, la fonction de cryptage préférée pour gérer les mots de passe peut être MD5. C'est ce que j'ai fait à l'époque : $password = md5($_POST["password"]. ); Le code ci-dessus vous semble-t-il familier ? Cependant, la méthode de cryptage MD5 ne semble pas être très populaire dans le monde PHP à l'heure actuelle, car son algorithme de cryptage est vraiment un peu simple et de nombreux sites de piratage de mots de passe stockent de nombreuses chaînes de mots de passe cryptées MD5, donc ici je déconseille fortement d'utiliser MD5. seul pour chiffrer les mots de passe des utilisateurs. SHA256 et SHA512En fait, il existe une méthode de cryptage SHA1 en même temps que le précédent MD5, mais l'algorithme est relativement simple, je vais donc le mentionner brièvement ici. Les SHA256 et SHA512 dont nous allons parler ici sont tous deux des fonctions de chiffrement de la famille SHA2. Vous l'avez peut-être deviné en regardant les noms. Ces deux méthodes de chiffrement génèrent des chaînes de hachage de 256 et 512 bits respectivement.

    Bibliothèque de classes de chiffrement et de déchiffrement54432017-12-19
  • <?php use Mockery\ExpectationInterface; use Mockery\Generator\CachingGenerator; use Mockery\Generator\Generator; use Mockery\Generator\MockConfigurationBuilder; use Mockery\Generator\StringManipulationGenerator; use Mockery\Loader\EvalLoader; use Mockery\Loader\Loader; use Mockery\Matcher\MatcherAbstract; class Mockery {     const BLOCKS = 'Mockery_Forward_Blocks'; ar \Mockery\Container     protected static $_container = null;     protected static $_config = null;Cet outil peut rapidement simuler l'interface du serveur HTTP tiers grâce à une configuration simple, remplaçant le processus précédent d'écriture manuscrite du code du servlet et le plaçant sous Tomcat. Veuillez lire attentivement le guide d'utilisation de l'outil avant utilisation : 1. Installez jdk1.6 ou supérieur ; 2. L'interface graphique se compose de trois parties : les paramètres de port, les paramètres d'URL et de chemin de fichier de réponse et la console ; .Port Défini sur le port local qui doit être surveillé, la plage est 1-65532 ; 4. Les paramètres de l'URL et du chemin du fichier de réponse sont un tableau avec 2 colonnes et 9 lignes. Chaque ligne comprend deux configurations. très bien d'après le nom. Comprenez, remplissez-le correctement ; 5 Remarque : Une fois la saisie terminée, vous devez cliquer sur les autres lignes du formulaire pour annuler le focus de la souris, afin que l'outil puisse reconnaître que le nom. la zone de saisie actuelle a été modifiée. La touche de raccourci pour copier et coller sous le système OSX est toujours ctr+c/v 6 La console est divisée en deux parties, trois boutons et une zone d'affichage de texte. les boutons peuvent être compris à partir des noms. La zone d'affichage du texte affiche les champs d'URL et d'en-tête des requêtes HTTP reçues. , cliquez avec le bouton droit pour effacer le bouton 7. jar et ouvrez-les.

    Autres bibliothèques18902017-12-19
  • <?php namespace GenPhrase; use GenPhrase\WordlistHandler\WordlistHandlerInterface as WordlistHandlerInterface; use GenPhrase\WordlistHandler\Filesystem as WordlistHandler; class Password {     protected $_wordlistHandler = null;     protected $_wordModifier = null;          /**      * @var RandomInterface      */     protected $_randomProvider = null;     /**      * @var string The separator characters. Must be single-byte characters.      */     protected $_separators = '-_!$&*+=23456789';     /**      * @var bool Whether to _always_ use separator characters or not (even if using them would not "make sense").      */Veuillez lire attentivement le guide d'utilisation de l'outil avant utilisation : 1. Installez jdk1.6 ou supérieur 2. L'interface graphique se compose de trois parties : la configuration du port, la configuration de l'URL et du chemin du fichier de réponse et la configuration du port ; est requis La plage du port local d'écoute est 1-65532 ; 4. Les paramètres d'URL et de chemin du fichier de réponse sont un tableau avec 2 colonnes et 9 lignes. Chaque ligne comprend deux configurations. Les deux configurations sont faciles à comprendre à partir de leurs noms et sont renseignées. correctement. C'est tout ; 5. Remarque : Une fois la saisie terminée, vous devez cliquer sur d'autres lignes du tableau pour annuler le focus de la souris, afin que l'outil puisse reconnaître que la zone de saisie actuelle a été modifiée. pour copier et coller sous le système OSX, c'est toujours ctr+c/v ; 6. La console est divisée en deux parties, trois boutons et une zone d'affichage de texte. Les fonctions des boutons peuvent être comprises à partir des noms. affiche l'URL, le champ d'en-tête et le corps du message de la requête HTTP reçue. Cliquez avec le bouton droit sur Il y a un bouton clair 7. Si vous devez surveiller plusieurs ports, copiez simplement plusieurs fichiers jar et ouvrez-les.

    Autres bibliothèques18042017-12-19
  • require_once '/path/to/HTMLPurifier.auto.php';Selon les spécifications ThinkPHP, pour les extensions tierces qui ne sont pas conformes aux spécifications de développement ThinkPHP, HTMLPurifier doit être placé dans le répertoire Library/Vendor. Ensuite, nous pouvons introduire HTMLPurifier.auto.php dans le programme-cadre via la méthode suivante : vendor('htmlpurifier.library.HTMLPurifier#auto'); Cependant, j'utilise ThinkPHP 3.2.1 ici et j'ai découvert que cette méthode ne peut être utilisée que dans les fonctions, pour les classes de contrôleurs. Une telle introduction ne peut pas être correctement reconnu. Autrement dit, nous ne pouvons le référencer que dans le fichier common/function.php. Créez un objet HTMLPurifier et implémentez le filtrage de texte enrichi$config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $clean_html = $purifier->purify($dirty_html);Comment configurer le filtre HTMLPurifierPour utiliser HTMLPurifier, l'accent est toujours mis sur la façon de le configurer. Pour le programme ci-dessus, nous avons créé un objet de configuration par défaut via la méthode createDefault(). Si nous souhaitons modifier la configuration, nous pouvons utiliser la méthode set pour configurer les paramètres. La méthode est la suivante : $config->set('config_object', value, a=null);Le premier paramètre est l'attribut qui doit être configuré, le deuxième paramètre est la valeur de l'attribut, et quelle est l'utilisation spécifique du troisième paramètre ? Je ne l'ai pas encore compris, mais je ne l'ai pas utilisé en général, je l'étudierai lentement quand j'aurai le temps. Les attributs de configuration de HTMLPurifier peuvent être interrogés via son site WebSélection des attributs de configurationLes documents de configuration de HTMLPurifier sont principalement classés en deux niveaux. Les principales catégories sont Attr (attribut), HTML (balise html), AutoFormat (format automatique), CSS. (configuration css), Sortie (configuration de sortie)... La sélection des sous-catégories peut être complétée en ajoutant le nom de la catégorie principale. Ajout du nom de la sous-catégorie. Par exemple, si je souhaite configurer les balises html autorisées, telles que les balises p et a, je peux le configurer comme suit$config->set('HTML.Allowed', 'p,a');Sélection des valeurs d'attributDans le document officiel, après avoir cliqué sur un attribut, vous pouvez voir l'explication de cet attribut, Il vous dira que le type de valeur (Type) de cet attribut est String, Int, Array, Boolen... Ensuite il vous indiquera également la valeur par défaut de cet attribut, comme NULL , vrai, faux, etc. Le format de cette valeur est le même que celui de PHP. Mécanisme de filtrage de liste blancheHTMLPurifier utilise un mécanisme de filtrage de liste blanche, et seuls ceux qui sont autorisés par le paramètre passeront l'inspection. Exemple de filtrage de basea, filtrez toutes les balises html dans le texte/**  * 过滤掉所有html标签很简单,原因则在白名单机制完成  */ $config->set('HTML.Allowed', '');b, conservez la balise de lien hypertexte a et son attribut d'adresse de lien href, et ajoutez automatiquement la valeur de l'attribut cible comme '_blank'$config->set('HTML.Allowed', 'a[href]'); $config->set('HTML.TargetBlank', true);c, Complétez automatiquement le code du paragraphe et supprimez les balises vides inutiles// 让文本自动添加段落标签,前提是必须允许P标签的使用 $config->set('HTML.Allowed', 'p'); $config->set('AutoFormat.AutoParagraph', true); // 清除空标签 $config->set('AutoFormat.RemoveEmpty', true); ……

    Autres bibliothèques43182017-12-19
  • <?php namespace GenPhrase; use GenPhrase\WordlistHandler\WordlistHandlerInterface as WordlistHandlerInterface; use GenPhrase\WordlistHandler\Filesystem as WordlistHandler; use GenPhrase\WordModifier\WordModifierInterface as WordModifierInterface; use GenPhrase\WordModifier\MbToggleCaseFirst as WordModifier; use GenPhrase\Random\RandomInterface as RandomInterface; use GenPhrase\Random\Random as Random; class Password {     protected $_wordlistHandler = null;     protected $_wordModifier = null;En termes simples, il s'agit du processus de décomposition d'un grand entier m (directement divisé en unités, comme 1 yuan ou 100) en n petits entiers. La plage des petits entiers est [min, max]. pour s'assurer d'abord que chaque petit mot de passe a min, puis chaque requête génère aléatoirement un entier allant de 0 à (max-min), plus min, qui est le mot de passe. Bien que cet algorithme soit simple, il présente un inconvénient : le dernier généré. les mots de passe peuvent tous être min .

    Autres bibliothèques13352017-12-19
  • <?php /**  * Simple autoloader that follow the PHP Standards Recommendation #0 (PSR-0)  * @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md for more informations.  *  * Code inspired from the SplClassLoader RFC  * @see https://wiki.php.net/rfc/splclassloader#example_implementation  */ spl_autoload_register(function ($className) {     $className = ltrim($className, '\');     $fileName = '';     if ($lastNsPos = strripos($className, '\')) {         $namespace = substr($className, 0, $lastNsPos);         $className = substr($className, $lastNsPos + 1);         $fileName = str_replace('\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;     }     $fileName = __DIR__ . DIRECTORY_SEPARATOR . $fileName . $className . '.php';     if (file_exists($fileName)) {         require $fileName;         return true;     }     return false; });Faker est un outil développé en langage Python. Il peut générer pour nous des packages Python pour de fausses données. Parfois, nous devons générer une grande quantité de fausses données qui semblent normales. À l'heure actuelle, nous pouvons utiliser Faker pour atteindre ces objectifs. Faker peut être utilisé directement dans la fenêtre de la console ou en appelant l'API (Application Function Interface). Il peut générer des données telles que : Faux nomsFausses adresses résidentielles et e-mailFaux internationauxFaux numéros de carte de créditFausses datesFausses adresses d'accès InternetFausses adresses IPFaux mots de passe de vérification Nous pouvons utiliser Faker pour générer n'importe quel informations que nous voulons, il peut générer de manière aléatoire toutes les données selon nos besoins. Faker prend désormais en charge de nombreuses langues, notamment l'indien, l'italien, le français, le bulgare, le néerlandais, etc.

    Classe d'opération de base de données62322017-12-19