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
Code:
mediafire... ?0efmybxiretl94f
sr mình ko chèn dc link

http;//www,mediafire,com/view/?0efmybxiretl94f
tieudaochanhmuoi viết 15:22 ngày 10/10/2018
sao hok ai póc tem hết vậy
ctcj82 viết 15:37 ngày 10/10/2018
Bạn có uplink đâu mà póc tem!
tieudaochanhmuoi viết 15:29 ngày 10/10/2018
up dc mình up rồi ! bạn chịu khó vào mediafire với id 0efmybxiretl94f nha. mình ko đủ bài viết
son8xvn viết 15:27 ngày 10/10/2018
thấy cấu trúc của bạn tốt đó. chúc bạn thành công.

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)
Hok bik zì viết 15:34 ngày 10/10/2018
Nói về sở thích thì mình thích CamelCase code style hơn và đặc biệt là Java Code Conventions nhưng mà cũng ko ảnh hưởng gì
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
tieudaochanhmuoi viết 15:36 ngày 10/10/2018
Được gửi bởi Hok bik zì
Nói về sở thích thì mình thích CamelCase code style hơn và đặc biệt là Java Code Conventions nhưng mà cũng ko ảnh hưởng gì
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
Hi , Mình thực sự ko biết nhiều cho lắm, cho nên những câu bạn hỏi mình cũng có phần hơi lấn cấn
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ả
nnquangit viết 15:27 ngày 10/10/2018
Nếu bạn viết theo CI như thế thì mình khuyên bạn :

* 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.
Bài liên quan
0