2009-06-19 29 views
5

Tôi là một newbie của Zend Framework.Những khó khăn khi học Zend Framework 1.8

Tôi đã tải xuống khung công tác Zend và sau đó làm theo hướng dẫn nhanh chính thức để xây dựng một biểu mẫu đăng ký rất đơn giản. Nhưng sau đó, tôi thấy rất khó để tìm hiểu các yếu tố khác nhau của khung công tác Zend.

Nhiều hướng dẫn đề cập đến frontController và registerAutoload() trong tệp bootstrap. Tuy nhiên, có vẻ như tôi không thể nhìn thấy nó một lần nữa trong mã trong phiên bản 1.8 (cả trong số official quickstart tutorialGetting Started with Zend Framework 1.8). Nhiều hướng dẫn chứa phiên bản mã cũ và có vẻ rất khác trong phiên bản v1.8.

Tôi bắt đầu bằng cách viết biểu mẫu đăng ký có xác nhận mật khẩu. Tôi đọc tài liệu chính thức và tìm số custom validator for password confirmation. Nó chỉ đặt lớp ở đó và không đề cập đến cách tôi có thể sử dụng nó. Tôi không biết tôi nên đặt tệp này ở đâu và tôi không thể tìm thấy bất kỳ gợi ý nào trong Google. Lỗi "không tìm thấy lớp" luôn khiến tôi bị bệnh (tôi đã thử addPrefixElement, set_include_path nhưng chúng không hoạt động).

Đăng ký người dùng, kích hoạt email, đăng nhập, kiểm soát truy cập là các tác vụ rất phổ biến. Nhưng tôi thậm chí không tìm thấy một đoạn mã mẫu trong v1.8 mà tôi có thể chạy trong máy của mình. Tôi rất thất vọng về Zend Framework.

Có ai cho tôi một số lời khuyên không?

Trả lời

8

Tôi cũng vừa mới bắt đầu học khuôn khổ zend. Tôi cũng tìm thấy rất nhiều bài hướng dẫn cũ mà làm cho việc học khó hiểu và khó khăn, nhưng có một số tài nguyên mà tôi tìm thấy sự giúp đỡ trong việc học Zend Framework:

  • http://www.zendcasts.com/ - họ có hướng dẫn về ZF1.8 đã có, như Bootstrapping sử dụng Zend_Application vv

Một số blog hữu ích mà có thể giúp đỡ:

Diễn đàn để đặt câu hỏi của bạn:

Khi không tìm thấy lớp học, tôi nghĩ bạn không tự động tải?

4

Các bộ phận của Zend Framework đã thay đổi một chút trong phiên bản 1.8 nhưng tất cả mọi thứ cần được tương thích ngược vì vậy tất cả mã ví dụ viết bằng 1. * phát hành loạt vẫn nên làm việc với ít hoặc không có sửa đổi .Các khu vực chính mà là khác nhau là

  • Zend Loader (liên quan đến register_autoload) mà hiện nay có một số cải tiến liên quan đến hiệu suất và một số khác biệt nhỏ trong API của nó (với một cảnh báo PHP nếu bạn sử dụng theo cách cũ). Tôi sẽ không lo lắng về điều này quá nhiều như một người mới bắt đầu - chỉ cần làm theo hướng dẫn hoặc tiếp tục sử dụng bao gồm/yêu cầu báo cáo cho đến khi bạn trở nên khó chịu với việc thêm tất cả các thời gian!

  • Ứng dụng Zend về cơ bản cho phép bạn tạo mã thiết lập và khởi tạo với ít phiền toái hơn. Một lần nữa, bạn không cần phải sử dụng nó và bạn có thể vui vẻ viết một lớp bootstrap thủ công để giúp bạn quen với cách mà khung công tác được đặt lại với nhau.

Liên quan đến việc bắt đầu, tôi khuyên bạn nên đi xung quanh thành phần Bộ điều khiển Zend, đặc biệt là bộ phận điều khiển phía trước và this diagram. Để xem xác thực tại Zend Auth, đối với e-mail, hãy xem Zend Mail, để kiểm soát truy cập xem Zend Acl và để xem biểu mẫu và xác thực, hãy xem Zend Form, Zend ValidateZend Filter. Các thành phần biểu mẫu và xác nhận hợp lệ sẽ giải thích về các đường dẫn và thêm các trình xác nhận và các phần tử biểu mẫu tùy chỉnh của riêng bạn.

Khu vực quan trọng khác là Zend Db cho phép bạn lưu dữ liệu của mình vào cơ sở dữ liệu. Ngoài ra còn có Zend View đại diện cho lớp xem trong ngăn xếp MVC. Theo tôi, đây là những thành phần chính của một ứng dụng ZF cơ bản. Từ đó bạn có thể khám phá các thành phần khác như và khi bạn cần chúng.

Đừng quên rằng khung công tác Zend được thiết kế đặc biệt để được ghép nối lỏng lẻo và rất dễ sử dụng một thành phần khác từ dự án khác cho một tác vụ cụ thể. Đôi khi nó là cần thiết để viết các thành phần của riêng bạn quá. Nếu có một thành phần bạn muốn sử dụng trên thành phần Zend thì hãy tiếp tục và làm như vậy.

Thành thật mà nói, tài liệu rất tốt mặc dù khó điều hướng cho người mới bắt đầu. Một khi bạn nhận được đầu của bạn xung quanh các thành phần cốt lõi tất cả mọi thứ sẽ trở nên rõ ràng hơn rất nhiều.

Đồng thời thử theo dõi this tutorial. Nó sẽ giúp giải thích rất nhiều điều cơ bản.

0

Tôi có rất nhiều thông cảm với bạn Billy. Tôi là một newbie và sự nhầm lẫn giữa cách cũ và cách thức mới gần như là quá nhiều để xử lý. Cũng thấy ở đây đối với một người chỉ ra một số điểm khác biệt chính:

http://crossfunctional.wordpress.com/2009/05/

0

Tất cả các tài liệu, đặc biệt là tài liệu hướng dẫn Zend là hoàn toàn khủng khiếp. Tất cả đều giả định rằng bạn "biết" nơi đặt các đoạn trích mà họ đang đề cập đến và cách chúng hoạt động cùng nhau. Nếu tôi đã biết những điều đó, tôi sẽ không cần tài liệu. Không có ứng dụng ví dụ đầy đủ nào có xác thực, v.v mà bạn có thể tải xuống và sửa đổi. Tôi thật sự hối hận vì đã dành thời gian để cố gắng học tập khuôn khổ này. Tất cả các ví dụ mà tôi có thể tìm thấy rõ ràng là dành cho các phiên bản cũ hơn. Tôi theo sau một để xác thực trên youtube được thiết kế cho 1,8 chữ cái. Nó không hoạt động trong 1.9.x. Không thể làm cho nó hoạt động cho cuộc sống của tôi. Hoàn toàn thất vọng với Zend Framework!

2

Tôi khuyên bạn nên sử dụng các video hướng dẫn này bởi Alex, anh ấy luôn cập nhật và phát hành video mới, tất cả đều liên quan đến ZF 1.8 và 1.9.

Ông có ngay cả một hướng dẫn chi tiết hình bao gồm ACL, hình thức đăng nhập vv (bước đầu tiên của tôi với Zend là nhờ dễ dàng hơn để anh ta!)

http://alex-tech-adventures.com/development/zend-framework.html?start=15 - trang web của mình là một chút comfusing nhưng giá trị thời gian trong việc tìm nó ra :)

Cheers La Mã

0

Zend Framework đã chuyển từ một hệ thống tương đối dễ tiếp cận và đơn giản để một thực thể phức tạp hơn. Nó đã trải qua một số phát triển nhanh chóng trong vài năm qua đã để lại rất nhiều tài liệu cũ xung quanh.

Chúng tôi có các dự án bị kẹt trên phiên bản 1.7.x vì sự khác biệt giữa phiên bản đó và phiên bản mới nhất quá lớn khiến cho thời gian phát hiện và thử nghiệm quá đắt.

Tôi thích khung công tác Zend vì nó có độ sâu rất nhiều nhưng nó chắc chắn là một thanh kiếm hai lưỡi cho người mới bắt đầu.

Tôi chắc chắn khuyên bạn nên sử dụng chuyên môn của những người dùng khác và tìm kiếm một số ví dụ về khung đơn giản. ZF có khả năng thích ứng cao nhưng bạn cần phải thử và làm việc từ trường hợp đơn giản nhất có thể cho nhu cầu của bạn.

Tôi nghĩ Matthew Weier o'Phinney, (tìm kiếm 'Phly, boy, phly') là một trong những thành viên dễ tiếp cận hơn trong nhóm dev và có rất nhiều ví dụ và ý tưởng trên trang web của anh ấy.

Chúc may mắn!

1

Một số lời khuyên:

Dưới đây là một sơ đồ tốt đẹp của quá trình văn

http://nethands.de/download/zenddispatch_en.pdf

Nó là dễ dàng hơn để hiểu ZF nếu bạn có kinh nghiệm trong OOP/OOP Design Patterns

Khi lần đầu tiên tôi tình cờ gặp ZF, tôi có ít kiến ​​thức về OOP. ZF nhắc tôi học OOP là một điều rất tốt.

Phân biệt giữa 'ma thuật' của ZF và thực tế ZF Kiến trúc

Mặc dù tôi có một hiểu biết tốt về lớp ZF tôi vẫn bị lẫn lộn khi ZF thêm 'ma thuật' của nó để trộn.

Khi tôi nói 'ma thuật' Tôi đang đề cập đến những thứ như

  • các đối tượng mặc định được nạp và sử dụng nếu không có chỉ định, và
  • biến tố url-controllername-filepath-filename/quy ước đặt tên.
  • cấu hình các thiết lập-to-đẳng cấp instantiation ánh xạ

ZF là một chút như một vết nứt-đại lý theo nghĩa là 'Bắt ​​đầu Hướng dẫn' giúp bạn kết nối ngay lập tức. Họ thực hiện rất nhiều ma thuật mà nó làm cho bạn nghĩ rằng .oO (Wow - đơn giản như thế nào! Khung này rất tuyệt!)

Sau đó, ngay khi bạn bắt đầu cố gắng làm điều của riêng bạn - ma thuật bắt đầu để có được thực sự khó hiểu.

Vì vậy, chiến thuật của tôi là loại bỏ càng nhiều ma thuật ZF càng tốt. Nếu bạn có tùy chọn chỉ định một lớp để sử dụng hoặc một bộ định tuyến để sử dụng, thì hãy chỉ định nó. Đừng để Zend làm điều đó cho bạn.

Khi xảy ra sự cố lạ, bạn có thể tìm thấy các lỗi dễ dàng hơn.

Ngoài ra, nếu bạn chỉ định vị trí của lớp/đường dẫn như (trái ngược với việc cho phép ZF uốn lượn đường dẫn và tìm tập lệnh), thì bạn không phải lo lắng về câu hỏi 'đặt ở đâu? , đặt nó ở đâu? - bạn chỉ cần đặt những thứ mà bạn muốn họ trở thành và chỉ rõ ZF cho họ.

Khi bạn quen thuộc hơn với ZF, bạn có thể muốn để nó tiếp quản và thực hiện một số phép thuật cho bạn. Chỉ khi đó bạn mới có thể hiểu tại sao phép thuật đó lại thuận tiện.

Như Tim Wardle đã nói trong câu trả lời khác - yêu cầu các câu lệnh trên bộ tải zend cho đến khi bạn thực sự cần nó.

Nếu bạn là một nhà thiết kế PHP có 10 dự án trang web mỗi tuần, thì ZF Magic có thể thực sự hữu ích. Nếu bạn đang thiết kế ứng dụng ZF đầu tiên của mình - thì 'giảm độ phức tạp' là mục tiêu thiết kế quan trọng hơn là 'khả năng sử dụng lại'.

Duyệt mã

Nó có vẻ hiển nhiên, nhưng một trong những cách tốt nhất để tìm hiểu về ZF là nhìn vào các mã.

Một lần nữa phép thuật ZF có thể cản đường - tôi thường muốn xem các đối số của phương pháp để khám phá những gì tôi cần để chỉ phát hiện ra rằng nó mong đợi một 'mảng tùy chọn' không rõ ràng (không chính xác hữu ích). Tuy nhiên, sau một thời gian, bạn bắt đầu nhận thấy các quy ước được sử dụng như thế nào trong một 'chìa khóa tùy chọn' kết hôn với phương thức getter/setter. Vì vậy, hãy tiếp tục xem mã và tự làm quen với 'cách ZF'.

Tôi 'áp dụng' trợ giúp đó.

+0

Sau khi viết bài viết về phép thuật ZF, tôi nghĩ rằng có thể có một số thành phần 'ZF Magic Info' là 'quan sát' khuôn khổ và cho phép bạn tạo ra một cái gì đó như 'phpinfo()' ở cuối vì vậy chúng tôi có thể xem whats gwan on. - chỉ là một ý nghĩ –