簡體   English   中英

在Laravel 4中使用名稱空間

[英]Using namespaces in Laravel 4

我是Laravel的新手並且通常使用PHP命名空間。 在我決定制作名為File的模型之前,我沒有遇到任何問題。 我如何正確地進行命名空間,以便我可以使用我的File模型類?

這些文件是app/controllers/FilesController.php app/models/File.phpapp/models/File.php 我想在FilesController.php創建一個新File

一旦掌握了它,它就很容易命名。

請看以下示例:

應用程序/模型/ File.php

namespace App\Models;

class File {

    public function someMethodThatGetsFiles()
    {

    }
}

應用程序/控制器/ FileController.php

namespace App\Controllers;

use App\Models\File;

class FileController {

    public function someMethod()
    {

        $file = new File();
    }
}

聲明命名空間:

namespace App\Controllers;

請記住,一旦你在一個Namespace中放置一個類來訪問PHP的任何內置類,你需要從Root Namespace中調用它們。 例如: $stdClass = new stdClass(); 將成為$stdClass = new \\stdClass(); (見\\

“導入”其他命名空間:

use App\Models\File;

這允許您使用不帶Namespace前綴的File類。

或者你也可以打電話:

$file = new App\Models\File();

但是最好將它放在use語句的頂部,因為您可以在不必掃描代碼的情況下查看所有文件的依賴項。

完成后,您需要運行composer dump-autoload來更新Composer的自動加載功能,以考慮新添加的類。

請記住,如果您想通過URL訪問FileController,那么您需要定義一個路由並指定完整的命名空間,如下所示:

Route::get('file', 'App\\Controllers\\FileController@someMethod');

這會將所有GET /文件請求指向控制器的someMethod()

看看關於命名空間的PHP文檔,Nettut總是這篇文章的一個很好的資源

首先,加載您的類:

$ composer dump-autoload

然后

$file = new File;

// your stuff like:
$file->name = 'thename';
$file->active = true;

$file->save();

部分:插入,更新,刪除Laravel 4 Eloquent的文檔

要在模型類命名空間,請在打開后立即在模型類的頂部

然后當您從控制器呼叫時,您將調用new Whatever \\ Model;

您可能必須第一次使用composer進行轉儲自動加載。

看看它..希望能清除你的查詢......

<?php

 namespace app\controllers;
 use yii\web\Controller;
 use app\models\users;
  class UserController extends Controller{
 public function actionIndex()
 {
echo "working on .....";
}
}

在打開php腳本標記之后,命名空間被定義在PHP類的頂部,如下所示:

 <?php
   namespace MyNameSpace;

當您想在其他類中使用命名空間類時,您可以像這樣定義它:

new MyNameSpace\PhpClass;

或者將其導入文件的頂部(如果存在名稱空間之后),如下所示:

 <?php

   //namespace

   use MyNameSpace\MyPHPClass;

   //then later on the code you can instantiate the class normally
   $myphpclass = new MyPHPClass();

在Laravel中,命名空間可以在作曲家可以自動加載的任何地方定義,我建議在app目錄中定義名稱空間。 因此,您可以通過在app目錄中創建Utils目錄來定義像Utils這樣的命名空間來保存Utility類,創建我們的實用程序類並像上面一樣定義命名空間。

然后你運行命令讓作曲家去自動加載類:

 $ composer dump-autoload

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM