Home > Backend Development > PHP Tutorial > 3 ways to use your own class library in Laravel, laravel class library_PHP tutorial

3 ways to use your own class library in Laravel, laravel class library_PHP tutorial

WBOY
Release: 2016-07-13 10:07:25
Original
822 people have browsed it

3 ways to use your own class library in Laravel, laravel class library

Although Composer allows us to reuse many existing libraries (such as those in packagist.org), we may still use some packages or libraries that are not compatible with composer. In addition, in a certain project, we may also create a certain class library, and may not intend to make it into a composer package. At this time we can use our own unique class library in the following ways.

Add classes that can be instantiated directly

Some classes that need to be used directly in the project can be added to Laravel in the following ways

1. Create the class library file app/libraries/class/myClass.php
2. Write file content

Copy code The code is as follows:

class Message {
Public static function display() {

}
}
?>

Add class import path in app/start/globals.php

Copy code The code is as follows:

ClassLoader::addDirectories(array(

app_path().'/commands',
​ app_path().'/controllers',
​ app_path().'/models',
App_path().'/database/seeds',
App_path().'/libaries/class', // Add

here

));
?>

Add the autoload directory in composer.json

Copy code The code is as follows:

"autoload": {
"classmap": [
"app/commands",
“app/controllers”,
“app/models”,
“app/database/migrations”,
“app/database/seeds”,
“app/tests/TestCase.php”,
"app/libraries/class" //Add
here ]
},

1. Execute composer dump-autoload to create import mapping
2. Use the class you imported to directly call Message::display()

This method is also a way to add a queue class. Many people don’t know where the queue processing class should be placed in Laravel. In fact, follow the above method to create a queues directory in the app directory, and then allow it to be instantiated directly. That’s it

Add functions that can be called directly

Some people like to use v() instead of var_dump(), and it is very easy to do this in Laravel

1. Create a function file app/libraries/function/helper.php
2. Write file content

Copy code The code is as follows:

function v($msg){
var_dump($msg);
}
?>

Add the file to composer’s automatic import list

Copy code The code is as follows:

"autoload": {
"classmap": [
...
],
"files": [
“app/libraries/function/helper.php”
],
},

Or display require this file in the project. Open app/start/global.php and add:
at the end

Copy code The code is as follows:

require app_path().'/libraries/function/helper.php';

Personally, I think both methods are OK. If you want to control the loading time of this file, you can even add the following content to the filter.php file
Copy code The code is as follows:

App::before( function( $request ) {
​ require( "{$GLOBALS['app']['path.base']}/app/libraries/function/helper.php" );
});

Use function v('hello world');

directly in the project

Add a slightly more complex class library

Sometimes a class library is more than just a file, so the following method is more suitable for class libraries with multiple files and multiple structures.

Create a psr0 or psr4 standard directory structure.

Copy code The code is as follows:

libraries
Myapp
Search (note directory is capitalized)
Search.php
SearchFacade.php
SearchServiceProvider.php
        AnotherLib

The namespace of the Search class in Myapp/Search/Search.php is MyappSearch.

Modify autoload in composer

Copy code The code is as follows:

"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"
}
},

Use new MyappSearchSearch() in the project to instantiate a certain class

Summary

Although Laravel does not force which method is best, there are certain standards that can make the project structure clear and save a lot of communication costs when multiple people cooperate in development.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/955970.htmlTechArticle3 ways to write your own class library in Laravel, laravel class library Although Composer allows us to reuse many existing Class library (such as the one in packagist.org), but we may still use...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template