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

Dec 27, 2016 am 11:34 AM

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 !

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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