Cấu hình () trong Laravel là gì?

Với việc phát hành Laravel 6, tôi đã thay đổi Shift để mặc định các tệp cấu hình thành phiên bản mới nhất của chúng

Chủ yếu điều này đã được thực hiện để cải thiện trải nghiệm người dùng. Trước đây, người dùng phải tải xuống các phiên bản mới nhất của tệp cấu hình và so sánh chúng theo cách thủ công để xác định các thay đổi

Bằng cách đặt mặc định các tệp này và thực hiện như vậy trong một cam kết nguyên tử, các thay đổi có thể được xem trực tiếp như một phần của yêu cầu kéo Shift mở ra. Điều này cho phép người dùng xem nội tuyến sự khác biệt giữa các tệp này và dễ dàng chèn lấp [hoặc hoàn nguyên] các tùy chỉnh của họ

Thứ hai, điều này phù hợp với khuyến nghị của tôi để giữ các tệp cấu hình ở chế độ mặc định nhất có thể

Điều này không chỉ xuất hiện với tư cách là người tạo ra Shift mà còn với tư cách là nhà phát triển duy trì gần một tá ứng dụng Laravel

Các tệp cấu hình là các tệp được thay đổi nhiều nhất giữa các phiên bản Laravel. Điều này không chỉ trong các bản phát hành chính. Các bản phát hành hàng tuần chứa các thay đổi đối với các tệp cốt lõi. Ngay từ Laravel 6. 0 các tập tin cấu hình đã thay đổi 10 lần

Vì những lý do này, tất cả các Ca nâng cấp của Laravel hiện đều mặc định các tệp cấu hình và ủng hộ việc giữ các tệp này ở dạng mặc định nhất có thể để cung cấp đường dẫn nâng cấp mượt mà hơn cho các phiên bản trong tương lai

Sự thật phũ phàng

Hầu hết các nhà phát triển không cập nhật các tệp này. Mặc dù bạn có thể thoát khỏi điều này trong một thời gian, nhưng sớm hay muộn bạn sẽ phải vò đầu bứt tai khi xem một thông báo lỗi khó hiểu

Tôi hiểu rằng phản hồi phổ biến là các tệp này được dùng để thay đổi. Đó là một điểm hoàn toàn công bằng. Quan điểm của tôi là nhiều hơn về khả năng bảo trì

Thường thì những thay đổi do Laravel hoặc nhà phát triển thực hiện là hời hợt. Nhận xét lỗi thời, thay đổi mặc định, giới thiệu các biến môi trường mới

Shift có thể xử lý các thay đổi do Laravel thực hiện. Những điều này để lại cho chúng tôi những thay đổi của nhà phát triển. Và hầu hết các tùy chỉnh là không cần thiết hoặc ít nhất có thể được thực hiện theo cách khác

Chúng ta hãy xem xét một số tùy chỉnh phổ biến nhất mà tôi thấy và các tùy chọn thay thế giúp ứng dụng của bạn dễ bảo trì hơn

Tận dụng các biến môi trường

Tôi thấy rất nhiều ứng dụng sao chép hoặc ghi đè các tùy chọn cấu hình thay vì

Ví dụ, một cách phổ biến là thiết lập cơ sở dữ liệu thử nghiệm

1'sqlite_testing' => [

2 'driver' => 'sqlite',

3 'url' => env['DATABASE_URL'],

4 'database' => storage_path['app/database.sqlite'],

5 'prefix' => '',

6 'foreign_key_constraints' => env['DB_FOREIGN_KEYS', true],

7],

Điều này thêm một tùy chọn cấu hình mới sẽ cần được sao chép trong tất cả các phiên bản tương lai của tệp cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

2

Thay vì thêm tùy chọn cấu hình mới, bạn có thể tận dụng tùy chọn cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

3 hiện có và đặt biến môi trường

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

4 và

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

5

Hơn nữa, đối với cấu hình thử nghiệm, điều này có thể được thực hiện rõ ràng hơn trong tệp

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

6 hoặc ghi đè chúng trong tệp cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

7

Tầng của cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

7 trên cấu hình môi trường cho phép cấu hình tối thiểu, cụ thể của môi trường thử nghiệm

Khi sử dụng

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

9, bạn cũng có thể thiết lập rõ ràng môi trường bằng cách sử dụng tùy chọn

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

0

Vì vậy, khi có sẵn một biến môi trường, bạn có thể sử dụng nó để tránh thực hiện các thay đổi không cần thiết đối với các tệp cấu hình và có được sự linh hoạt hơn trong việc định cấu hình ứng dụng của mình

Giờ đây, một số nhà phát triển muốn ghi đè lên các giá trị mặc định thay vì phải đặt biến môi trường cho mọi môi trường. Tôi hiểu điều này có vẻ giống như một cách tiếp cận dễ dàng hơn. Nghĩa là đặt một giá trị ở một vị trí thay vì nhiều vị trí

Tuy nhiên, đây là một sự đánh đổi ngắn hạn. Mặc dù bạn chỉ thay đổi điều này một lần từ góc độ cấu hình, nhưng bạn sẽ thay đổi nó nhiều lần khi bạn duy trì giá trị này trên các phiên bản khung trong tương lai

Khi xem xét về lâu dài, việc thiết lập những điều này thông qua một biến môi trường thực sự trở nên dễ dàng hơn

Tùy chọn cấu hình tùy chỉnh

Một cách sử dụng phổ biến khác của các tệp cấu hình là các giá trị tùy chỉnh. Đây là những ứng dụng cụ thể hoặc phần bổ sung cho các phần

Ví dụ: các cài đặt dành riêng cho ứng dụng được thêm vào tệp cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

1, trình điều khiển cơ sở dữ liệu được thêm vào tệp cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

2 hoặc các dịch vụ bổ sung được thêm vào tệp cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

3

Tất cả đều là những vị trí hợp lý để thêm các tùy chỉnh đó. Nhưng những thứ này vẫn phải được mang theo giữa mỗi lần nâng cấp. Vì những lý do đó, tôi cố gắng tách các giá trị này ở nơi tôi có thể

Nhìn lại những ví dụ này, hãy bắt đầu với tệp cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

1. Thay đổi phổ biến nhất ở đây là đăng ký nhà cung cấp và bí danh. Tuy nhiên, với , những điều này phải là tối thiểu

Điều này để lại các cài đặt cụ thể cho ứng dụng. Tôi muốn đặt những thứ này trong tệp cấu hình dành riêng cho miền của mình. Đôi khi tôi sẽ gọi đây là

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

5 hoặc sử dụng tên ứng dụng

Ví dụ: Shift có tệp cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

6

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

Trong tệp cấu hình tùy chỉnh này, tôi không chỉ đặt các giá trị cấu hình cụ thể cho ứng dụng mà còn cả các tùy chọn mà bạn có thể muốn thấy trong một số thứ như

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

7

Điều này có vẻ xa lạ. Nhưng tệp này được tải giống như bất kỳ tệp cấu hình nào khác. Như vậy, tôi có thể tham chiếu các giá trị này bằng cách sử dụng

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

8 từ bất kỳ đâu trong ứng dụng của mình. Ví dụ,

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

9

Sử dụng một tệp cấu hình riêng cũng có nghĩa là tôi không phải lo lắng về việc duy trì các giá trị này trong một trong các tệp cấu hình cốt lõi. Một lần nữa, các tệp này luôn thay đổi và không có gì đảm bảo rằng ngay cả các tùy chọn cấu hình cốt lõi sẽ vẫn còn. Ví dụ: cấu hình dịch vụ Stripe đã bị xóa khỏi tệp cấu hình

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

7 trong Laravel 6

Vì vậy, hãy luôn nhớ rằng bạn có thể tự do di chuyển các tùy chọn cấu hình sang tệp cấu hình tùy chỉnh để cải thiện khả năng bảo trì ứng dụng của mình

Đối với một số dịch vụ tích hợp như trình điều khiển

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

21 hoặc

1return [

2 

3 'executable' => env['SHIFT_SCRIPT_PATH', '/opt/shift/main.php'],

4 

5 'webhook_executable' => env['WEBHOOK_SCRIPT_PATH', '/opt/shift/webhook.php'],

6 

7 'support_email_address' => env['SHIFT_SUPPORT_EMAIL_ADDRESS'],

8 

9 'latest_sku' => env['SHIFT_LATEST_SKU'],

10 

11 'services' => [

12 

13 'github' => [

14 'shift_username' => env['GITHUB_USERNAME'],

15 'client_id' => env['GITHUB_CLIENT_ID'],

16 'client_secret' => env['GITHUB_CLIENT_SECRET'],

17 'redirect' => env['GITHUB_CALLBACK_URL'],

18 ],

19 

20 'gitlab' => [

21 'shift_user_id' => env['GITLAB_USER_ID'],

22 'client_id' => env['GITLAB_APP_ID'],

23 'client_secret' => env['GITLAB_SECRET'],

24 'redirect' => env['GITLAB_CALLBACK_URL'],

25 ],

26 

27 'bitbucket' => [

28 'shift_username' => env['BITBUCKET_USERNAME'],

29 'client_id' => env['BITBUCKET_KEY'],

30 'client_secret' => env['BITBUCKET_SECRET'],

31 'redirect' => env['BITBUCKET_CALLBACK_URL'],

32 ],

33 

34 ]

35];

22, bạn có thể không có tùy chọn này. Bạn sẽ cần thực hiện các tùy chỉnh đối với tệp cấu hình lõi cụ thể

Một tương lai dễ dàng hơn

Tất cả các đề xuất này đều nhằm mục đích cải thiện trải nghiệm của nhà phát triển vì nó liên quan đến việc duy trì ứng dụng Laravel của bạn

Như mọi khi, tôi sẽ tiếp tục cải thiện Shift để phát hiện các tùy chỉnh và cố gắng chèn lấp chúng

Tuy nhiên, thực hiện những điều chỉnh nhỏ này cho quy trình phát triển của bạn ngay bây giờ sẽ giúp bạn tạo ra một ứng dụng Laravel dễ bảo trì hơn cho tương lai

Cấu hình ở đâu trong Laravel?

Tất cả các tệp cấu hình cho khung công tác Laravel được lưu trữ trong thư mục app/config . Mỗi tùy chọn trong mỗi tệp đều được ghi lại, vì vậy, vui lòng xem qua các tệp và làm quen với các tùy chọn có sẵn cho bạn.

Việc sử dụng thư mục cấu hình trong Laravel là gì?

Mặc định của Laravel. env chứa một số giá trị cấu hình phổ biến có thể khác nhau tùy thuộc vào việc ứng dụng của bạn đang chạy cục bộ hay trên máy chủ web sản xuất . Các giá trị này sau đó được lấy từ các tệp cấu hình Laravel khác nhau trong thư mục cấu hình bằng hàm env của Laravel.

Làm cách nào để tạo tệp cấu hình trong Laravel?

Các cài đặt cốt lõi của ứng dụng Laravel của bạn – cài đặt kết nối cơ sở dữ liệu, hàng đợi và thư, v.v. – trực tiếp trong các tệp trong thư mục cấu hình. Mỗi tệp trong số này trả về một mảng và mỗi giá trị trong mảng sẽ có thể truy cập được bằng khóa cấu hình bao gồm tên tệp và tất cả các khóa con, được phân tách bằng dấu chấm [. ]

Tệp cấu hình web trong Laravel là gì?

Web. tệp cấu hình được được sử dụng bởi IIS, phần mềm máy chủ web của Microsoft . về cơ bản nó là. htaccess của hệ sinh thái Microsoft cùng với plugin viết lại được đề cập trong tệp được sử dụng để làm cho các url đẹp hoạt động trong IIS.

Chủ Đề