2016-12-28 19 views
7

Tôi tự hỏi cách xử lý 400+ Tuyến đường.Quản lý 400 tuyến đường trong Laravel với tính năng tự động hoàn thành PhpStorm

Hiện tại, chúng tôi tách tất cả các tuyến đường thành nhiều tệp theo không gian tên bộ điều khiển mà chúng thuộc về.

Cấu trúc của App/Http/Routes trông giống như sau:

- Auth.php 
- Marketing.php 
- Orders.php 

Tất cả các tuyến đường của chúng tôi được đặt tên. Nhưng ở đây có vấn đề thực tế chúng ta đang gặp phải.

Tuyến đường của chúng tôi được đặt tên bằng cách sử dụng Lớp học chứa các hằng số xác định tên tuyến đường.

namespace App\Http\Controllers\Marketing; 

class RouteConstants 
{ 
    /** 
    * MarketingController 
    */ 
    const INDEX = 'marketing.index'; 
    const DISABLED = 'marketing.disabled'; 

Các lớp liên tục này nằm trong vùng tên bộ điều khiển. Sau đó, họ được sử dụng trong Marketing.php tuyến nộp như sau:

/** 
* Marketing Routes 
*/ 
Route::group(['namespace' => 'App\Http\Controllers\Marketing'], function() { 

    /** 
    * MarketingController Routes 
    */ 
    Route::get('marketing/overview', [ 
     'uses' => '[email protected]', 
     'as' => MarketingRoutes::INDEX 
    ]); 

    Route::get('marketing/disabled', [ 
     'uses' => '[email protected]', 
     'as' => MarketingRoutes::DISABLED 
    ]);``` 

này được thực hiện bởi vì nó cho phép chúng ta sử dụng các tính năng PhpStorm autocomplete và cũng nhìn thấy nơi mỗi tuyến đường được sử dụng.

Nhưng vấn đề với điều này là chúng tôi đang sử dụng hai hệ thống cùng một lúc. Hệ thống đặt tên định tuyến nội bộ của Laravel và đồng thời chúng tôi đang sử dụng hệ thống riêng của chúng tôi để xác định tên là hằng số.

Phải có cách tốt hơn để quản lý số lượng tuyến đường này và có cách kiểm tra tập quán trong tệp dự án.

Hiện nay nó cũng khá lộn xộn trong quan điểm của chúng tôi:

<a href="{{ route(App\Http\Controllers\Marketing\RouteConstants::INDEX) }}">Marketing</a> 

Tôi đã thử các plugin Laravel cho PhpStorm nhưng điều này không hoạt động đúng khi có một thư mục với các tuyến đường đó sẽ được tự động nạp vào RouteServiceProvider.

Trả lời

1

cần chú ý khi các changelog của Plugin Laravel cho PhpStorm (phiên bản 0.11), hỗ trợ được thêm vào cho cấu trúc tuyến của Laravel 5.3.

Tôi đề nghị bạn di chuyển thư mục tuyến đến thư mục gốc của dự án của bạn. Giống như Laravel 5.3. Ví dụ: app/Http/Routes/ trở thành routes/.

Khi sử dụng phiên bản 0.11 của plugin và bạn có cấu trúc thư mục 5.3, tôi không thấy lý do tự động đề xuất cho tên tuyến đường sẽ không hoạt động.

Hy vọng điều này sẽ hữu ích!

+0

Thử nghiệm nó và nó hoạt động. Nhược điểm duy nhất là bạn không thể nhìn thấy nơi các tuyến đường của bạn đang được sử dụng trong ứng dụng. Tôi đoán tôi sẽ mở một vấn đề trên plugin Laravel Phpstorm để có thể thêm chức năng này. –

+0

Đã mở một sự cố về plugin Laravel Phpstorm https://github.com/Haehnchen/idea-php-laravel-plugin/issues/85 –

1

Tôi nghĩ nếu bạn đi xa như const trong bộ điều khiển thì văn bản sẽ ngắn hơn để chỉ sử dụng các tên thông thường. Sau đó, quan điểm của bạn sẽ đẹp hơn một lần nữa.

Bạn có thể vào giao diện bên kia trong các tài liệu tại :: nguồn Route nơi tập tin tuyến đường của bạn sẽ nhận được nhỏ hơn nhiều vì nó tự động thiết lập tất cả các tuyến crud và sau đó đi trách nhiệm để điều khiển

+0

Afaik và kiểm tra bạn vẫn phải thêm tiền tố bộ điều khiển với không gian tên đầy đủ trong dạng xem. Vì vậy, tôi không thấy cách đó sẽ giải quyết vấn đề đó. Theo như 'Route :: resource' có liên quan sẽ là sở thích. Tôi không phải là phiền toái với các tập tin tuyến đường của tôi trở nên lớn trong ý nghĩa đó. Tôi thích có 1 cách xác định lộ trình.Vấn đề chính của tôi là tự động hoàn thành và kiểm tra sử dụng các tuyến đường. –

Các vấn đề liên quan