Gần đây, tôi nhận được khá nhiều email phản hồi của các bạn đọc về việc tìm hiểu các vấn đề liên quan đếnzend framework. Và phần đông trong các email này bày tỏ về vấn đề làm sao để học tốt zend framework. Vì khi đối diện một php framework quá lớn như zend, nhiều bạn đã cảm thấy lúng túng và đôi khi choáng ngộp trước việc tìm hiểu nó.
Do vậy mà hôm nay, bằng kinh nghiệm thực tế của tôi, tôi sẽ chia sẻ cùng các bạn cách để học zend framework hiệu quả. Hy vọng, các bạn trẻ sẽ tìm thấy hướng giải quyết tốt trong bài viết này.
Trước hết, chúng ta tìm hiểu xem vì sao zend framework khó học?. Và những trải nghiệm thường gặp khi học zend như thế nào nhé.
+ Cấu hình ứng dụng, chuyện không đơn giản ?.Zend Framework được xem là thư viện đầy đủ và có độ phổ quát khá lớn so với các php framework hiện nay. Tuy vậy, để tiếp cận được với zend framework thì người học luôn phải có được sự kiên nhẫn nhất định. Vì khâu gian nan nhất trong zend framework chính là phần cấu hình làm sao để chạy cho được ứng dụng. Nếu ứng dụng không thể chạy, thì bạn cũng không thể làm được điều gì khác từ thư viện mạnh mẽ này. Do đó, nếu bạn lần đầu mới tiếp cận zend framework. Hãy cố gắng kiên nhẫn và làm đi làm lại thật nhiều lần các bước cấu hình ứng dụng với zend framework. Chỉ khi bạn thành thục được nó, bạn mới nên nghĩ tới bước tìm hiểu các vấn đề khác trong zend framework.
+ Lỗi và sự nản lòng “chiến sĩ”Thật vậy, nếu bạn vô tình thiếu sót một bước nào đấy khi cấu hình, hoặc chỉ đơn giản là thiếu một file view .phtml trong quá trình tạo controller thì một thông báo lỗi phức tạp sẽ xuất hiện giống bên dưới.
Thật ra, thông báo lỗi này xuất hiện là vì khi làm, bạn đã bỏ qua việc cấu hình errorController. Điều này, khiến cho hệ thống không thể báo chi tiết các lỗi mà bạn đang gặp phải. Hãy tỷ mỉ và chú trọng vào ErrorController trước khi bạn thực sự muốn bắt tay viết ứng dụng. Thiếu nó, zend framework thật sự trở thành cơn ác mộng với người mới tìm hiểu.
+ Khác biệt module và mô hình không module.Một thuật ngữ mà đôi khi chúng ta hay nhắc đến trong zend đó là cấu hình multi module thì như thế nào ?. Việc cấu hình này khiến không ít bạn phải mất ăn mất ngủ. Vì các bước thêm thắt của nó để chạy cho được ứng dụng. Chẳng hạn, với model, form cấu hình multi module sẽ khác với cấu hình mô hình bình thường. Và điều này ít nhiều sẽ khiến bạn cảm thấy hoang mang khi mới lần đầu trải nghiệm. Thực tế thì, sự khác biệt ấy không quá lớn như bạn tưởng. Khi thể hiện ở mô hình multi module, thường thì bạn khai báo trong application.ini về điều đó chỉ với 2 dòng đơn giản.
1 | resources.frontController.moduleDirectory=APPLICATION_PATH "/modules" |
2 | resources.modules= "" |
Kế tới, ở mỗi module bạn nên có một file bootstrap.php riêng và ở đó bạn sẽ phải khai báo đơn giản như bên dưới. (tên module đứng trước tên lớp bootstrap).
1 | <?php |
2 | class Admin_Bootstrap extends Zend_Application_Module_Bootstrap{ |
3 | } |
Cuối cùng, ở mỗi controller, model, form của module bạn phải thêm vào tiền tố tên module nữa để ứng dụng hiểu được chúng rõ ràng hơn.
1 | <?php |
2 | class Admin_IndexController extends Zend_Controller_Action{ |
3 | } |
1 | <?php |
2 | class Admin_Model_User extends Zend_Db_Table_Abstract{ |
3 | } |
1 | <?php |
2 | class Admin_Form_User extends Zend_Form{ |
3 | } |
Bạn thấy đấy, chỉ cần làm đúng 3 bước trên thì mọi thứ thật đơn giản phải không nào ?.
+ Quá nhiều cách giải quyết vấn đềĐúng vậy, zend framework cung cấp cho chúng ta rất nhiều phương thức để giải quyết các vấn đề ví dụ như để tạo form thì có thể dùng zend_form, dùng helper trong zend_view hoặc thậm chí có thể dùng HTML thuần để giải quyết. Hay để sử dụng cơ sở dữ liệu tương tác với ứng dụng ta có thể dùng thư viện active record zend_db_table hoặc zend_db với các câu truy vấn quen thuộc,… Thật nhiều giải pháp phải không nào ?. Đừng quá lo lắng về điều đó, bản thân zend framework xây dựng là để lập trình viên tự do phát huy sự sáng tạo của mình.Zend Framework không quá ràng buộc người dùng phải theo quy chuẩn. Mà nó xây dựng quy chuẩn, sau đó tùy cho bạn sáng tạo theo cách riêng của bạn.Vì thế, tự bạn hãy chọn cho mình một cách nào đó thật thoải mãi đối với bạn. Đừng câu nệ vì mình khác người, hãy tự hào vì bạn hiểu rõ từng dòng lệnh bạn gõ ra như thế nào ?.
+ Hoảng sợ khi ai đó code khác bạn
Bạn biết không, khi tôi đọc các sách về zend framework, bản thân tôi từng tự hỏi “tôi phải tin vào ai đây ?”. Vì mỗi tác giả đều có một cách code riêng của mình. Cách code này dựa vào thâm niên và kinh nghiệm của từng người mà biến đổi cho phù hợp. Vì thế, với người mới. Tôi hiểu rất rõ, các bạn cần tham khảo một chuẩn mực nào đó từ người ABC bên ngoài để củng cố rằng cách mình đang đi là đúng. Thực tế thì, bạn đang quá lo xa. Bởi, cá nhân mỗi người đều có cái lý riêng khi cho rằng cách mình là tối ưu nhất. Cho nên dù muốn dù không trong các tài liệu họ vẫn chứng mình theo quan điểm cá nhân của họ là đúng.
Bạn biết không, khi tôi đọc các sách về zend framework, bản thân tôi từng tự hỏi “tôi phải tin vào ai đây ?”. Vì mỗi tác giả đều có một cách code riêng của mình. Cách code này dựa vào thâm niên và kinh nghiệm của từng người mà biến đổi cho phù hợp. Vì thế, với người mới. Tôi hiểu rất rõ, các bạn cần tham khảo một chuẩn mực nào đó từ người ABC bên ngoài để củng cố rằng cách mình đang đi là đúng. Thực tế thì, bạn đang quá lo xa. Bởi, cá nhân mỗi người đều có cái lý riêng khi cho rằng cách mình là tối ưu nhất. Cho nên dù muốn dù không trong các tài liệu họ vẫn chứng mình theo quan điểm cá nhân của họ là đúng.
Chúng ta nên tham khảo, nhưng không vì thế mà lo lắng về cách mà chúng ta đang làm. Bạn sẽ không khỏi ngạc nhiên khi thấy các source code ở các công ty Nhật họ dùng zend để tương tác với cơ sở dữ liệu như thế nào đâu. Vì cách họ dùng khác xa với những gì bạn học, hoặc thậm chí họ còn không dùng tới khái niệm zend form hay zend_view gì đó chỉ để tạo ra một cái form HTML đơn giản. Vấn đề là bạn phải tự tin vào những gì bạn đang có, hòa nhập chứ không hòa tan. Bởi với kiến thức mà bạn có từ zend thì bạn hoàn toàn có thể bắt kịp xu hướng và tiến độ của công việc một cách dễ dàng. Chỉ cần kiên nhẫn tìm hiểu thì bạn sẽ không bị đuối sức. Hãy nắm vững những gì gọi là cơ bản nhất, vì nó là thứ tạo ra sự phức tạp nhất đấy bạn ạ.
+ Đừng quá thần tượng vào zend.Sự hào nhoáng và độ sộ của thư viện zend đôi khi sẽ khiến bạn có cảm giáczend framework là nhất, từ đó bạn sẽ có cách nhìn không tốt về các php framework khác. Hãy nhớ rằng mọi framework đều có điểm mạnh và điểm yếu riêng biệt. Và zend framework cũng không ngoại lệ. Chỉ khi bạn học và tìm hiểu sâu vào một số lớp thì mới hiểu được điều mà tôi đang đề cập. Bởi còn rất nhiều lớp của thư viện vẫn chưa thực sự hoàn thiện về ý tưởng lẫn core phát triển. Đó là lý do các phiên bản mới của zend có giai đoạn ra mắt liên tục để nhằm vá, che các lỗi của những lớp này phát sinh.
Trải nghiệm trên mỗi php framework khác sẽ cho bạn cách nhìn đầy đủ hơn về sức mạnh của PHP, như codeigniter đơn giản nhưng hiệu quả, kohana mạnh mẽ cũng không kém zend là mấy hay Yii framework đối thủ đáng gờm của zend,…. Tất cả những điều ấy sẽ khiến bạn hiểu ra rằng, zend framework cũng như bao framework khác mà thôi, và mình chọn nó vì đơn giản nó nhỉnh hơn các framework khác đôi chút. Và biết đâu trong tương lai không xa, bạn lại muốn tự tạo cho bản thân một php framework của riêng mình thì sao ?. Học hỏi, dung hợp và phát triển chúng theo cách của riêng bạn mới là điều tuyệt vời nhất trongPHP Framework.
+ Và QHOnline luôn bên cạnh bạn.QHOnline trải qua nhiều năm phát triển và xây dựng. Ít nhiều cũng được nhiều bạn trẻ gắn bó và yêu mến. Với lý tưởng chia sẻ kiến thức cho cộng đồng. Chúng tôi, đã và đang không ngừng nghỉ đưa zend framework nói riêng và tất cả các php framework khác nói chung đến gần với các bạn nhiều hơn bằng các chủ đề tổng hợp, xây dựng hoàn chỉnh các ứng dụng dựa vào php framework.
(Bùi Quốc Huy)
0 nhận xét:
Đăng nhận xét