10/10/2018, 13:21
Đánh giá thử cấu trúc framework mình viết
mình học php gần hơn 1 năm rồi, khi học php mình thấy nó rất khác với .net học tại trường, sau đó nảy sinh ý thích viết framework cho ngôn ngữ này. Gần đây mình cũng đã thử viết một framework theo ý của mình ... nhưng viết mãi mà cứ bị ảnh hưởng của codeigniter học trước đó nên framework có hơi lai ci 1 chút. Mọi người xem tài liệu và đánh giá giúp mình nha
sr mình ko chèn dc link
http;//www,mediafire,com/view/?0efmybxiretl94f
Code:
mediafire... ?0efmybxiretl94f
http;//www,mediafire,com/view/?0efmybxiretl94f
Bài liên quan
Nếu bạn muốn tham khảo ý kiến thì nên tìm đế những diễn đàn lớn của nước ngoài.
Ở đây cao thủ thì ít (ít chứ ko phải là ko có) mà dân chém gió thì nhiều (theo mình thấy vậy)
Mình có một số câu hỏi thế này
1. Router có hỗ trợ reverse routing ko?
2. Routing patterns được định nghĩa tập trung liệu có hiệu quả? Có nên đẩy việc registry routing patterns cho từng module?
3. Thực sự thì mình chưa hiểu vai trò thực tế của “global”?
4. Theo như bạn giới thiệu thì mình thấy Model chỉ là một kiểu “Lightweight ActiveRecord”, ko đúng với tinh thần MVC lắm!? Data Access Layer (DAL) (mình xin gọi là DAL thay vì Model) có hỗ trợ query building ko bạn?
5. Có bất kì “hooking point” nào để alter core thay vì can thiệp trực tiếp ko?
6. Theo hình hiểu thì mỗi module tự render view của riêng nó. Như vậy liệu có hiệu quả khi module khác muốn alter view elements mà ko muốn can thiệp vào mã?
Trước mắt là mấy câu vậy, để mình nghiên cứu kỹ rồi hỏi thêm
1. reverse routing: Cái này mình ko hiểu ý bạn cho lắm ? bạn có thể giải thích cho mình ko ?
2. Trước đây mình cũng có nghĩ đến nhưng giờ theo mình nghĩ là không nên, việc này sẽ trở nên rời rạc và khó kiểm soát. Thậm chí còn góp thêm tính rùa bò cho fw
3. Mình tạo ra global để xử lý những trường hợp thực tế như: Contains placeholder A chứa thẻ <title>{global a}</title> , khi người dùng xem tin tức thì tại module tin tức mình có thể gán {global a} ở placeholder A thành tiêu đề của cái tin đang xem. Đây là trường hợp mà mình hay dùng trong SEO.
4. Query building mình nghĩ đơn giản là giải thoát cách viết mã lệnh sql theo một quy tắc khác ngắn gọn và dễ dàng hơn. Nếu là vậy thì framework của mình ko hỗ trợ.
5. có. Nhưng mình chỉ tạo ra 1 số hook quan trọng để móc vào bất kỳ module nào mà mình muốn như module_load , module_loaded ... Thực sự ko nhiều hook cho lắm
6. Bạn nghĩ như thế nào là hiệu quả
* libraries : không nên tổ chức như CI, tốt nhất là làm sao cái library có thể Standalone, nên giống của zend dễ copy paste
* router : CI router dễ đơn giản, zend phức tạp hơn nhưng zend nó có reverse routing CI thì ko có, mình đã viết reverse routing cho CI rồi nên mình thấy viết theo zend là tốt nhất. Tuy nhiên zend ko cho subfolder cái này sửa cũng đơn giản.
* widgets : Cái này rất wan trọng mình thấy các framework hiện giờ đều ko. Nếu có cái này có thể thay thế phần form của zend và làm được nhìu thứ khác nữa
module
--|----- default
--|----- --|----- controllers
--|----- --|----- forms
--|----- --|----- models
--|----- --|----- views
--|----- --|----- widgets
* database : ngoài việc hỗ trợ nhìu loại + ActiveRecord mình rất thích cái ActiveRecord của CI cái này viết dễ nhưng cũng ko ai rãnh mà viết. Cái ActiveRecord của CI lấy wa framework riêng cũng dễ.
+ CI : Adapter -> ActiveRecord -> Model,
+ Zend: Adapter -> Model[Db_Table,...Row,...RowSet....]
Ước gì
+ Zend: Adapter -> ActiveRecord -> Model[Db_Table,...Row,...RowSet....]
* hook/bootstrap/plugin/.... : cái này mỗi cái 1 khái niệm bên zend ko có hook nhưng có bootstrap + plugin tốt nhất là làm giống zend phần này.