Maison > php教程 > PHP开发 > 3 façons d'utiliser votre propre bibliothèque de classes dans Laravel

3 façons d'utiliser votre propre bibliothèque de classes dans Laravel

高洛峰
Libérer: 2016-12-27 11:34:52
original
1186 Les gens l'ont consulté

Bien que Composer nous permette de réutiliser de nombreuses bibliothèques existantes (telles que celles de packagist.org), nous pouvons toujours utiliser certains packages ou bibliothèques qui ne sont pas compatibles avec Composer. De plus, dans un certain projet, nous pouvons également créer une certaine bibliothèque de classes et ne pas avoir l'intention d'en faire un package de composition. À l’heure actuelle, nous pouvons utiliser notre propre bibliothèque de classes unique des manières suivantes.

Ajouter des classes qui peuvent être instanciées directement

Certaines classes qui doivent être utilisées directement dans le projet peuvent être ajoutées à Laravel dans ce qui suit façons

1. Créez le fichier de bibliothèque de classe app/libraries/class/myClass.php
2. Écrivez le contenu du fichier

<span style="font-size: 16px;"><?php<br/>class Message {<br/>    public static function display() {<br/>    }<br/>}<br/>?><br/></span>
Copier après la connexion

. Ajoutez le chemin d'importation de la classe à app/start/globals.php

<span style="font-size: 16px;"><?php <br/>ClassLoader::addDirectories(array(<br/>    app_path().&#39;/commands&#39;,<br/>    app_path().&#39;/controllers&#39;,<br/>    app_path().&#39;/models&#39;,<br/>    app_path().&#39;/database/seeds&#39;,<br/>    app_path().&#39;/libaries/class&#39;, // 在这里增加<br/>));<br/>?><br/></span>
Copier après la connexion

Ajoutez le répertoire de chargement automatique à composer.json

<span style="font-size: 16px;">"autoload": {<br/>    "classmap": [<br/>        "app/commands",<br/>        "app/controllers",<br/>        "app/models",<br/>        "app/database/migrations",<br/>        "app/database/seeds",<br/>        "app/tests/TestCase.php",<br/>        "app/libraries/class"   //在这里增加<br/>    ]<br/>},<br/></span>
Copier après la connexion

1. Exécutez composer dump-autoload pour créer le mappage d'importation
2 Utilisez la classe que vous avez importée pour appeler directement Message::display()

Cette méthode également. En ce qui concerne la méthode de classe de file d'attente, beaucoup de gens ne savent pas où la classe de traitement de file d'attente dans Laravel doit être placée. En fait, selon la méthode ci-dessus, créez un répertoire de files d'attente dans le répertoire de l'application, puis autorisez-le à être instancié directement.

Ajoutez des fonctions qui peuvent être appelées directement

Certaines personnes aiment utiliser v() au lieu de var_dump(), et c'est très simple pour faire cela dans Laravel

1. Créez un fichier de fonction app/libraries/function/helper.php
2 Écrivez le contenu du fichier

<span style="font-size: 16px;"><?php <br/>function v($msg){<br/>    var_dump($msg);<br/>}<br/>?><br/></span>
Copier après la connexion
.

Ajouter le fichier à Composer importe automatiquement

<span style="font-size: 16px;">"autoload": {<br/>   "classmap": [<br/>       ...<br/>   ],<br/>   "files": [<br/>       "app/libraries/function/helper.php"<br/>   ],<br/>},<br/></span>
Copier après la connexion

dans la liste ou affiche le fichier requis dans le projet. Ouvrez app/start/global.php et ajoutez à la fin :

<span style="font-size: 16px;">require app_path().&#39;/libraries/function/helper.php&#39;;<br/></span>
Copier après la connexion

Personnellement, je pense que les deux méthodes sont OK. Si vous souhaitez contrôler le temps de chargement de ce fichier, vous pouvez même ajouter le contenu suivant au fichier filter.php

<span style="font-size: 16px;">App::before( function( $request ) {<br/>    require( "{$GLOBALS[&#39;app&#39;][&#39;path.base&#39;]}/app/libraries/function/helper.php" );<br/>});<br/></span>
Copier après la connexion

Utiliser la fonction v('hello world') directement dans le projet ;

Ajouter une bibliothèque de classes légèrement plus complexe

Parfois, une bibliothèque de classes comprend plus d'un simple fichier, la méthode suivante est donc plus adaptée aux bibliothèques de classes avec plusieurs fichiers et plusieurs structures.

Créez une structure de répertoires standard psr0 ou psr4.

libraries
    Myapp
        Search (note directory is capitalized)
            Search.php
            SearchFacade.php
            SearchServiceProvider.php
        AnotherLib
Copier après la connexion

L'espace de noms de la classe Search dans Myapp/Search/Search.php est MyappSearch.

Modifier le chargement automatique dans composer

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/libraries",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ]
    ,
    "psr-0": {
         "Myapp": "app/libraries"
    }
},
Copier après la connexion

Utiliser le nouveau MyappSearchSearch() dans le projet pour instancier une certaine classe

Résumé

Bien que Laravel ne force pas Quelle méthode est la meilleure, mais certaines normes peuvent clarifier la structure du projet et permettre d'économiser beaucoup de coûts de communication lorsque plusieurs personnes coopèrent au développement.

Pour plus d'articles connexes sur 3 façons d'utiliser votre propre bibliothèque de classes dans Laravel, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal