2010-02-01 38 views
9

nếu tôi có các hàm chuỗi tôi sử dụng rất nhiều, tôi có nên đặt chúng trong lớp trợ giúp hoặc lớp thư viện không?sự khác biệt giữa các thư viện và người trợ giúp trong khung php

các chức năng như: chuỗi cắt ngắn nếu dài hơn 30 ký tự, trả về một chuỗi ngẫu nhiên, tạo tất cả các trường hợp thấp hơn, v.v. đây là những hàm mà tôi có thể không cần tạo đối tượng. tốt hơn là sử dụng chúng làm phương pháp tĩnh.

tôi có nên đặt chúng trong lớp thư viện hoặc lớp trợ giúp không?

khi nào tôi biết khi nào nên đặt ở đâu?

Trả lời

13

Helpers là các lớp học giúp một cái gì đó đã có ví dụ có thể là một trợ giúp cho:

mảng
chuỗi
url
vv

Một thư viện là cái gì đó có thể là bất kỳ dung dịch; nó có thể được tạo ra lần đầu tiên bởi bạn và không ai khác đã tạo ra.

Vì bạn đang xử lý một chuỗi (một cái gì đó đã có), bạn nên đặt nó trong lớp trợ giúp hoặc sửa đổi lớp trình trợ giúp chuỗi của khung (nếu có). Tuy nhiên, đây là một quy ước hoặc tiêu chuẩn nhưng bạn có thể tạo một thư viện cho nó quá nếu bạn đang tạo ra một cái gì đó thực sự mát mẻ cho chuỗi xử lý với khá một số chức năng.

+1

bạn có thể nói rằng các lớp thư viện nên được sử dụng để khởi tạo các đối tượng. nếu có, thì thật dễ dàng để biết khi nào cần tạo một trình trợ giúp và khi nào để tạo một lớp thư viện. nhưng trong java, chúng ta có lớp Toán. và chỉ có các chức năng tĩnh. trở lại một hình vuông :) – ajsie

+0

@noname: không thể hiểu được bình luận của bạn, nhưng tôi đã không nói về việc khởi xướng hay không bắt đầu. – Sarfraz

3

Tôi cho rằng bạn đang sử dụng CodeIgniter.

Vì bạn đã viết rằng bạn không cần phải khởi tạo một đối tượng và sẽ sử dụng nó trong các phương thức tĩnh của nó, sau đó biến nó thành trợ giúp sẽ có ý nghĩa hơn làm cho nó thành thư viện.

Trong CI, người trợ giúp cũng được quản lý, khi tải, lần tải thứ hai để tải nó sẽ bị bỏ qua. Bạn có thể mở trình xây dựng của CI trong trình trợ giúp để tìm hiểu nó làm gì, sau đó so sánh nó với các thư viện. Bằng cách biết mục đích, bạn có thể tự quyết định, trợ giúp hoặc thư viện.

1

nếu tôi có các hàm chuỗi tôi sử dụng rất nhiều, tôi có nên đặt chúng trong lớp trợ giúp hoặc lớp thư viện không?

Nếu chúng có chức năng, tại sao bạn muốn gắn chúng vào một lớp học? PHP cho phép các hàm nổi tự do.

+0

PHP cho phép rất nhiều, tại sao đôi khi nó có thể lộn xộn. vì vậy tôi muốn biết cấu trúc tốt nhất là gì. – ajsie

+0

Trong trường hợp không rõ ràng, tôi ngụ ý rằng tôi nghĩ rằng các chức năng miễn phí là cấu trúc tốt nhất cho trường hợp được mô tả. – troelskn

2

Trình trợ giúp là tập hợp các hàm do người dùng xác định hoặc được xác định trước, không cần phải khởi tạo cũng như thư viện là các lớp cần phải nhanh chóng sử dụng chúng. Thư viện có thể chứa các hàm/phương thức do người dùng xác định và được xác định trước. Hàm được định nghĩa trong thư viện (lớp) được gọi là phương thức!

11

Bên cạnh manual giải thích những bài khá tốt ...

thư viện: lớp Utility nơi trạng thái đối tượng là quan trọng (cổng thanh toán, xác thực, vv)

người giúp đỡ: Bộ sưu tập các chức năng liên quan (không lớp) thực hiện các tác vụ lặp đi lặp lại (chuỗi, mảng, v.v.)

plugin: Một cách đơn giản để thả các lớp của bên thứ ba. Thông thường, toàn bộ quá trình được gọi với một hàm bao bọc duy nhất. (không được chấp nhận trong phiên bản 2.0 sắp tới của CodeIgniter.)

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