Envy là một gói của Worksome được thiết kế để loại bỏ sự khó khăn khi đồng bộ hóa các tệp môi trường với dự án Laravel của bạn. Hãy cùng kiểm tra nào
Tất cả chúng ta đã ở đó. Bạn đang có một nhà phát triển mới và chạy dự án Laravel của bạn, và vì lý do nào đó, nó không có gì khác ngoài 500 lỗi. Nó hoạt động trên máy của bạn. Chuyện quái quỷ gì đang xảy ra?
giờ trôi qua. gắn kết nhầm lẫn. Lẩm bẩm xảy ra sau đó
Rồi đột nhiên, bạn facepalm. Có một mục bị thiếu trong tệp .env
của họ. Hãy xem, thường xuyên hơn không, chúng tôi quên cập nhật tệp
* Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
0 của mình vì nó không còn có bất kỳ tác động có ý nghĩa nào đối với chu kỳ phát triển của chúng tôi. Chỉ khi điều này xảy ra, bạn mới thề rằng mình sẽ cập nhật nó. Có lẽ bạn làm, có lẽ bạn không. Nhưng ngay cả khi bạn làm như vậy, rất có thể nó sẽ lại lỗi thờiTại Worksome, chúng tôi cảm thấy mệt mỏi với chu kỳ đau đớn bất tận này. Vì vậy, chúng tôi quyết định làm một cái gì đó về nó. Gặp gỡ Envy, gói Laravel sẽ đảm bảo bạn không bao giờ bỏ lỡ một biến môi trường nào nữa
Làm thế nào nó hoạt động?
Envy không phải là sự đồng bộ hóa giữa tệp .env
và
* Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
0 của bạn. Thấy không, có rất nhiều cạm bẫy. Đối với người mới bắt đầu, bạn hầu như không bao giờ muốn thực sự sao chép các giá trị môi trường từ .env
của mình, vì chúng có xu hướng chứa thông tin nhạy cảm không nên có trong kiểm soát phiên bản. Ngoài ra, nếu bạn không còn cần biến môi trường trong dự án của mình vì bạn xóa tệp cấu hình hoặc xóa gói, thì việc đồng bộ hóa đơn giản giữa hai tệp này sẽ không giúp xóa các biến hiện đã lỗi thời đóGhen tị thông minh hơn nhiều. Nó đọc tất cả các tệp cấu hình của dự án của bạn [hoặc bất kỳ tệp nào khác mà bạn đã định cấu hình] và tìm các lệnh gọi đến hàm
* Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
4. Sau đó, nó so sánh các cuộc gọi đó với nội dung bên trong tệp * Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
0 của bạn. Với kiến thức đó, nó có thể đề xuất các bổ sung hoặc loại bỏ cho bạn, để việc đồng bộ hóa tệp môi trường của bạn với dự án của bạn chỉ là một lệnh của ArtisanEnvy có hai lệnh Artisan.
* Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
6 và * Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
0. Đồng bộ hóa được thiết kế để chèn các biến môi trường bị thiếu vào tệp * Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
0 của bạn. Prune được thiết kế để loại bỏ các biến môi trường không còn cần thiếtĐừng lo lắng, cả hai lệnh này sẽ không thực hiện thay đổi mà không cần xác nhận [trừ khi bạn vượt qua tùy chọn
* Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
2]Chạy trong CI
Tất nhiên, bạn vẫn phải chạy các lệnh này để đồng bộ hóa mọi thứ, điều mà bạn có thể quên thực hiện. Để đảm bảo bạn không bao giờ bỏ lỡ điều này nữa, cả hai lệnh Artisan đều cung cấp tùy chọn
* Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
3 sẽ kiểm tra các bổ sung hoặc xóa cần thiết và trả về mã lỗi nếu tìm thấyHãy xem quy trình làm việc cơ bản của GitHub sẽ thực hiện việc kiểm tra này cho bạn
name: Check Environment Variables
uses: shivammathur/setup-php@v2
- name: Install Composer dependencies
run: composer install --prefer-dist --no-interaction
run: php artisan envy:sync --dry
run: php artisan envy:prune --dry
Công cụ khá đơn giản, hey?
Cấu hình
Envy có rất nhiều tùy chọn cấu hình, tất cả đều có thể được tùy chỉnh trong
* Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
5. Các tài liệu Envy có tài liệu mở rộng về tất cả các tùy chọn có sẵn cho bạn. Tuy nhiên, một điều tôi muốn chỉ ra là bạn có thể thêm các tệp môi trường bổ sung để kiểm tra. Vì vậy, nếu bạn có tệp * Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
6 hoặc * Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
7, bạn có thể thêm chúng vào hỗn hợp để đảm bảo chúng luôn được cập nhậtMột điều cần nhớ là Envy sẽ chỉ tìm kiếm các tệp trong thư mục
* Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
8 của bạn cho các cuộc gọi * Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
4. Điều này là do bạn chỉ nên sử dụng hàm * Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
4 trong tệp cấu hình của mình, vì sử dụng hàm này ở nơi khác sẽ ngăn bộ nhớ đệm cấu hình ứng dụng. Tuy nhiên, nếu bạn cần thêm các thư mục bổ sung để tìm kiếm, bạn có thể thêm chúng tại đây * Here you should list any config files/directories that you want to be
* included when looking for calls to `env`. Directories are searched
* recursively. Feel free to include unpublished vendor configs too.
base_path['vendor/spatie/laravel-permission/config'],
ghi chú bên
Tôi muốn dành một chút thời gian để nói rằng tôi thích viết Envy đến mức nào. Tôi đã xây dựng nó bằng cách sử dụng mô hình hành động mà bạn có thể xem bài nói chuyện về Laracon của tôi tại đây. Nó sử dụng PHP AST để phân tích cú pháp và tạo các tệp PHP, điều này luôn mang tính giải trí. Nó cũng đánh dấu lần đầu tiên tôi sử dụng gói Termwind tuyệt vời cho các ứng dụng bảng điều khiển kiểu dáng - bạn chắc chắn nên kiểm tra nó. Viết HTML cho bảng điều khiển đẹp hơn rất nhiều và cảm thấy quen thuộc ngay lập tức
Chúng tôi đã đánh bóng rất nhiều vào cái này và chúng tôi hy vọng nó sẽ thành công
Phần kết luận
Envy chắc chắn sẽ giúp chúng tôi cập nhật mọi thứ và chúng tôi hy vọng nó cũng có thể giúp bạn trong các dự án của mình. Hãy đọc tài liệu, kiểm tra mã nguồn và nhớ thích dự án trên GitHub nếu nó giúp ích cho bạn