2016-04-10 83 views
0

我正在使用Laravel框架。在laravel 5.2中創建新的類

我有關於類創建的問題。 爲了解釋我的問題,我會給你一個例子:

class articleController extends Controller{ 
    public function bla(){ 
     $a = new MyNewClass($colorfulVariable); 
     $b = $a->createSomething(new MySecondNewClass()); 
    } 
} 

現在,類MyNewClassMySecondNewClass不存在,我想創建它們,在每個控制器我想使用它們,就像我用的是重定向或請求類Laravel提供。

我該如何創建這個類?在我的laravel項目中創建一個新的函數來使用它們?

+0

嗨Itzhak,你不能使用一個clases而不創建它們。請給出關於你的問題的更多細節。問候! –

+0

這只是一個示例代碼。這些課程不是真的存在,我只是問我什麼時候可以創建它們,我如何使用它們? –

+0

現在我明白你了。正如wezzy所說,App文件夾中的任何類都已加載,但請記住爲每個新類設置正確的名稱空間。 –

回答

3

您可以在應用程序文件夾中創建這些類(或在子文件夾中創建一個包含所有實用程序的Libraries文件夾)。只需包含一個使用App \ YourClass;使用這些類和laravel將包括班前,你

+0

只需創建一個文件夾幷包含這些類?拉拉維爾沒有創造出輕鬆管理新圖書館或課程的美妙選擇? –

+0

如果你想使用3D派對庫,你可以使用作曲家。但是,如果您想爲您的項目創建自定義類,最快的方法是在應用文件夾 – wezzy

+0

中創建您的類。我必須將它們包含到composer.json文件中,如@Alexey Mezenin在他的評論中說的那樣? –

2

您可以創建你的類像往常一樣,但不要忘記它們包括到composer.json自動加載部分:

"autoload": { 
    "classmap": [ 
     "App\MyClassesNamespace" 
.... 

然後運行composer dumpauto命令重建自動加載器文件。如果你不這樣做,你將無法在你的應用程序中使用你的類。

0

你不必做以外的任何其他東西如下:

  1. 需要在app \文件夾中的一類。
  2. 無論何時使用該類,都必須使用「使用App \ XYZ;」導入該類。在導入類的頂部。

多數民衆贊成它。大多數人遵循約定,然後在App \文件夾上創建「服務」文件夾。創建laravel框架類以外的服務文件夾的外來類是很好的。

1

Laravel 5. *是使用PSR-4在app /目錄中自動加載的。你可以在composer.json文件中看到這個。

"autoload": { 
    "classmap": [ 
     "database/seeds", 
     "database/factories" 
    ], 
    "psr-4": { 
     "App\\": "app/" 
    } 
}, 

基本上,你可以創建應用程序中的另一個目錄,然後你的命名空間中的文件有適當的:

app/folder1/folder2/SomeClass.php. 

然後,你SomeClass.php中,請確保您的命名空間:

<?php namespace App\folder1\folder2; 

class Someclass {} 

現在,您可以使用類的命名空間來訪問這個類:

use App\folder1\folder2\SomeClass;