News & Events
Tiết kiệm thời gian viết code với Funct
- 30/03/2016
- Posted by: Bùi Đạt
- Category: Video Bài giảng Video học Lập trình web Video Học Thiết kế web
Chào các bạn. Hôm nay mình sẽ giới thiệu đến các bạn một thư viện util rất hữu dụng chứa nhiều phương thức mà bạn sẽ gặp hàng ngày – Đó là Funct. Đã khi nào bạn cảm thấy mình rất tốn thời gian viết lại một hàm nào đó mà bạn vẫn thường hay dùng lại trong nhiều project? Việc này không những gây tốn thời gian mà còn nhàm chán. Sau khi biết đến bộ thư viện Funct, bạn sẽ không phải “làm lại công việc nhàm chán” ấy nhiều lần nữa vì tất cả đã được thực hiện sẵn và tối ưu hết rồi, bạn chỉ cần “bưng ra và ăn” thôi.
Thư viện Funct
Funct là một tập gồm những phương thức phổ biến nhất và được chia ra làm 5 nhóm. Tương tứng với các nhóm sẽ có 4 sub-namespace. Riêng General sẽ được đặc ở root-namespace:
- Invoke
- Strings
- Collection
- Object
- General
Trong bài hôm nay mình sẽ giới thiệu những nét cơ bản, hướng dẫn dùng và cài đặt. Sau này để theo dõi những cập nhật của Funce các bạn hãy xem thông tin trên trang repo của project này trên github nhé.
Lợi ích
Lợi ích trước tiên, rõ ràng nhất là giúp bạn tiết kiệm được khối lượng thời gian tương đối. Vì giờ khi phát triển ứng dụng bạn không cần thiết phải ghi nhớ hay viết lại những đoạn code vẫn hay dùng, cũng giảm thiểu rủi ro khi viết nhiều quá…hoa mắt khiến nhiều đoạn code bị bug rất phiền. Muốn sửa lại cũng đởn giản hơn rất nhiều. Ví dụ như khi bạn cần tìm một phần tử trong Array bạn sẽ viết như thế này chẳng hạn:
1 2 3 4 5 6 | foreach ($collection as $key => $item) { $diff = array_diff_assoc($value, $item); if (count($diff) < 1) { return $item; } } |
Nhưng nhờ có Funct rồi mà 5 dòng con trên chỉ cần như sau là ok:
1 | Collection\findWhere() |
Không chỉ nhanh chóng mà bằng cách sử dụng hàm với tên xác định thì bạn sẽ không cần phải comment vào code thế này:
1 2 3 4 5 6 7 | //Find element foreach ($collection as $key => $item) { $diff = array_diff_assoc($value, $item); if (count($diff) < 1) { return $item; } } |
Cách thức bạn đang dùng được xây lên bởi những người có nhiều kinh nghiệm và cũng được nhiều người trên thế giới đóng góp và cải thiện nó nên đương nhiên nó sẽ được optimize tốt nhất có thể rồi!
Tuy nhiên cũng chính vì nó được contribute nhiều như vậy nên bạn cũng cần để mắt tới những gì được thực hiện trong những phương thức, vì nếu bạn không biết được cái gì đang thực sự diễn ra trong phương thức (có vòng lặp hay không..) thì bạn sẽ không thể đánh giá cost của phương thức đó, sẽ khiến ứng dụng của bạn trở nên rất nặng mà không hiểu do đâu. Nhớ lưu ý nhé.
Yêu cầu
Để dùng được Funct, bạn phải sử dụng PHP 5.5 trở lên. Hiện nay đa số các shared hosting đều hỗ trợ phiên bản PHP mới nhất và ổn định nhất nên bạn cũng không cần quá lăn tăn về yêu cầu này. Chỉ là nếu như bạn viết plugin hay theme cho wordpress và muốn nó hỗ trợ những phiên bản php như 5.3 thì không còn cách nào khác để sử dụng thư viện này mà không cần phải chỉnh sửa lại nó.
Cách cài đặt
Đây là thư viện dùng trong composer. Hãy cài composer trước nhé. Sau đó mở cmd tại thư mục project và chạy lệnh sau:
1 | $ composer require funct/funct |
Tóm lại
Bạn không nên quá lạm dụng Funct mà phải sử dụng 1 cách linh hoạt. Cái gì cũng có giá của nó, lạm dụng sẽ không tốt. Ví dụ như ở trường hợp này nếu bạn dùng Funct thì cái giá sẽ rất là cao đấy:
1 2 3 4 5 6 7 | //Find element foreach ($collection as $key => $item) { $foundItem = Collection\findWhere($collection,["id"=>12]); if($foundItem){ //do some thing } } |
Ở đoạn code phía trên, thực chất ta có 2 vòng lặp for lồng vào nhau. Trong khi ta hoàn toàn code thể viết như sau:
1 2 3 4 5 6 7 | //Find element foreach ($collection as $key => $item) { $foundItem = Collection\findWhere($collection,["id"=>12]); if($foundItem){ //do some thing } } |
Cũng ít ai làm như vậy, nhưng đây là ví dụ cho thấy rằng: khi bạn muốn thao tác với kết quả tìm kiếm ngay thì không cần phí phạm 1 vòng lặp như thế. Hãy hiểu mình đang làm gì và bản chất của phương thức là gì.
Chúc các bạn thành công.
Nguồn: Sen Việt
Trả lời Hủy
Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.