官术网_书友最值得收藏!

Using Autoloader to map a class name to its file

Using Laravel's ClassLoader, we can easily include any of our custom class libraries in our code and have them readily available.

Getting ready

For this recipe, we need to set up a standard Laravel installation.

How to do it...

To complete this recipe, follow these steps:

  1. In the Laravel /app directory, create a new directory named custom, which will hold our custom classes.
  2. In the custom directory, create a file named MyShapes.php and add this simple code:
    <?php
    class MyShapes {
        public function octagon() 
        {
            return 'I am an octagon';
        }
    }
  3. In the /app/start directory, open global.php and update ClassLoader so it looks like this:
    ClassLoader::addDirectories(array(
    
        app_path().'/commands',
        app_path().'/controllers',
        app_path().'/models',
        app_path().'/database/seeds',
        app_path().'/custom',
    
    ));
  4. Now we can use that class in any part of our application. For example, if we create a route:
    Route::get('shape', function()
    {
        $shape = new MyShapes;
        return $shape->octagon();
    });

How it works...

Most of the time, we will use Composer to add packages and libraries to our app. However, there may be libraries that aren't available through Composer or custom libraries that we want to keep separate. To accomplish this, we need to dedicate a spot to hold our class libraries; in this case, we create a directory named custom and put it in our app directory.

Then we add our class files, making sure the class names and filenames are the same. This could either be classes we create ourselves or maybe even a legacy class that we need to use.

Finally, we add the directory to Laravel's ClassLoader. When that's complete, we'll be able to use those classes anywhere in our application.

See also

  • The Creating advanced Autoloaders with namespaces and directories recipe
主站蜘蛛池模板: 准格尔旗| 惠东县| 舟曲县| 兴安县| 东台市| 阿瓦提县| 桃源县| 疏附县| 如东县| 甘孜县| 奈曼旗| 宁乡县| 道孚县| 措美县| 乌拉特前旗| 陕西省| 万全县| 明溪县| 益阳市| 汉川市| 自治县| 彝良县| 台北市| 扶风县| 田阳县| 靖江市| 石家庄市| 苗栗市| 五大连池市| 靖安县| 二连浩特市| 农安县| 霍州市| 宕昌县| 南宁市| 宁德市| 辽阳县| 泽普县| 东阿县| 拜泉县| 高雄县|