Three methods for writing class libraries by yourself in Laravel _ PHP Tutorial

Source: Internet
Author: User
Laravel uses three methods to compile the class library. Laravel uses three methods for writing class libraries by yourself. This article mainly introduces three methods for writing class libraries by yourself in Laravel, this article explains how to add a class that can be directly instantiated, and how to add a class library that can be compiled by yourself in Laravel.

This article mainly introduces three methods for writing class libraries in Laravel, this article explains how to add classes that can be directly instantiated, add functions that can be directly called, and add a slightly complex class library. For more information, see

Although Composer allows us to reuse many existing class libraries (such as packagist.org), we may still use some packages or class libraries that are not compatible with composer. In addition, a certain type of library may be created in a project, and it may not be intended to become a composer package. In this case, we can use our own class library in the following ways.

Add classes that can be directly instantiated

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

1. create a class library file app/libraries/class/myClass. php
2. Write file content

The code is as follows:


Class Message {
Public static function display (){

}
}
?>

Add the class import path to app/start/globals. php.

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

));
?>

Add the autoload directory to composer. json.

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" // added here
]
},

1. execute composer dump-autoload to create the import ING.
2. use the imported class to directly call Message: display ().

This method also adds the queue class. many people do not know where the queue processing class should be stored in Laravel. In fact, create a queues directory under the app directory according to the above method, then let it be instantiated directly.

Add functions that can be called directly

Some people prefer v () to replace var_dump (). It is also very easy to do this in Laravel.

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

The code is as follows:


Function v ($ msg ){
Var_dump ($ msg );
}
?>

Add the file to the composer automatic import list.

The code is as follows:


"Autoload ":{
"Classmap ":[
...
],
"Files ":[
"App/libraries/function/helper. php"
],
},

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

The code is as follows:


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


I personally feel that both methods are OK. if you want to control the file loading time, you can even add the following content to the filter. php file:

The code is as follows:


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

Directly use the function v ('Hello World') in the project ');

Add a slightly complex class library

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

Create a standard directory structure of psr0 or psr4.

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. php is Myapp \ Search.

Modify autoload in composer

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 Myapp \ Search () in the project to instantiate a category

Summary

Although Laravel does not force the best method, there are some standards that can make the project structure clear, and many people in cooperative development save a lot of communication costs.

This article introduces three methods for writing class libraries in Laravel. This article describes how to add classes that can be directly instantiated, and how to add classes that can be directly instantiated...

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.