Laravel 4中的包和CodeIgniter中的库一样吗?


Are packages in Laravel 4 the same as libraries in CodeIgniter?

我曾经使用CodeIgniter。在CodeIgniter中,每当我必须创建自己的类时,我都会在库文件夹中创建一个类,并将其用作库。在Laravel中,他们使用包。在文档中,他们还讨论了如何创建自己的包。Laravel 4中的包与CodeIgniter中的库相同吗?

现在似乎很常见的是将自定义类、异常、验证等放入与应用程序对应的命名文件夹中。

例如:

| laravel
|    -- AppName/
|       -- Exceptions
|       -- Repositories
|       -- Validation
|       -- CustomClasses (your custom class name)
|    -- controllers
|    -- models
|    -- views
要包含在composer中,最简单的方法是包含classmap

作曲家。json

"autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
            "app/AppName"
        ]
    }

如果你想使用psr-4自动加载代替,有一个伟大的免费视频laracast让你开始https://laracasts.com/lessons/psr-4-autoloading

另外,如果你是laracast的会员,我该把这个视频放在哪里正是你要找的问题。https://laracasts.com/lessons/where-do-i-put-this

Laravel的包是来自Composer的第三方库。

你自己的类不适合控制器/模型,你可以去任何你想去的地方,只要你告诉自动加载器在哪里找到它们。我们使用app/libraries和PSR命名空间约定。

需要将"app/libraries"添加到"autoload-->classmap"数组中的"composer.json"中。