Thứ Năm, 2 tháng 1, 2014

Học PHP | PHP Framewword

Có lẽ thành ngữ Framewword Không xa lạ gì với những bạn đã từng học PHP, và giáo trình dạy học lập trình php cũng nhắc tới frameword. Frameword giống như 1 thư viện mã lệnh được xây dựng sẵn để chúng ta sử dụng. Cộng đồng các developer được chia làm hai: một là những người sử dụng PHP thông thường và hai là những người dung frameword. Một frameword tốt thì vấn đề bảo mật cần được cải thiện, tạo một website dễ dàng nâng cấp, giảm thời gian xây dựng web và các ứng dụng web.
PHP Framework là cái gì nhỉ? 

PHP là của thế giới ngôn ngữ kịch bản phổ biến nhất vì nhiều lý do khác nhau vì ứng dụng linh hoạt, dễ dàng sử dụng, và nhiều thứ khác nữa – nhưng thường lần code trong PHP, hoặc ngôn ngữ nào cho rằng vấn đề, có thể nhận được khá đơn điệu và lặp đi lặp lại. Đó là nơi mà một PHP framework có thể giúp đỡ các nhà phát triển dự án tốt hơn.
PHP frameworks đơn giản hóa việc phát triển các ứng dụng web viết bằng PHP bằng cách cung cấp một cấu trúc cơ bản mà có thể xây dựng các ứng dụng web. Nói cách khác, PHP frameworks giúp thúc đẩy phát triển ứng dụng nhanh chóng (RAD), trong đó tiết kiệm thời gian, giúp xây dựng các ứng dụng ổn định hơn, và giảm số lượng mã lặp đi lặp lại cho các nhà phát triển. PHP frameworks cũng có thể giúp người mới bắt đầu để xây dựng các ứng dụng ổn định hơn bằng cách bảo đảm sự tương tác cơ sở dữ liệu phù hợp và mã hóa trên lớp thuyết trình. Điều này cho phép bạn dành nhiều thời gian hơn việc tạo ra các ứng dụng web trên thực tế, thay vì dành thời gian viết mã lặp đi lặp lại.
Ý tưởng chung đằng sau hoạt động của một PHP framework là được gọi là Model View Controller (MVC). MVC là một mô hình kiến trúc trong chương trình mà cô lập logic kinh doanh từ các giao diện người dùng, cho phép một đến được sửa đổi riêng với khác (còn gọi là tách mối quan tâm). Với MVC, Model dùng để chỉ dữ liệu, xem đề cập đến lớp thuyết trình, và điều khiển các ứng dụng hoặc logic kinh doanh. Về cơ bản, MVC phá vỡ quá trình phát triển của một ứng dụng, do đó bạn có thể làm việc trên các yếu tố cá nhân, trong khi những người khác không bị ảnh hưởng. Về cơ bản, điều này làm cho coding trong PHP nhanh hơn và ít phức tạp. 
    Và tại sao chúng ta phải sử dụng PHP Framework?
Các nhà phát triển sử dụng PHP frameworks cho nhiều lý do khác nhau, nhưng một số lý do cơ bản nhất và dễ hiểu nhất là tiết kiệm thời gian phát triển ứng dụng web PHP. Dùng lại mã qua các dự án tương tự sẽ tiết kiệm được rất nhiều các nhà phát triển một số lượng đáng kể về thời gian và nỗ lực trong dự án. PHP frameworks cung cấp mô-đun trước được xây dựng để thực hiện nhiệm vụ tẻ nhạt mã hóa, do đó, các nhà phát triển có thể dành nhiều thời gian của họ vào việc phát triển các ứng dụng thực tế hơn là tái xây dựng nền tảng với nhau và mỗi dự án.
Ổn định là một lý do phần lớn nhà phát triển sử dụng frameworks. Trong khi đơn giản là một trong những giá trị lớn nhất của PHP, và là lý do nhiều người thích sử dụng ngôn ngữ kịch bản này, sử dụng khá dễ dàng, đặc biệt là cho người mới bắt đầu, để viết mã xấu và thậm chí không nhận ra nó. Với các ứng dụng PHP sẽ thường xuyên nhầm lẫn mà vẫn làm việc, nhưng vô tình hay cố ý bạn có thể đã mở ra một lỗ hổng lớn trong quá trình viết mã của bạn có thể dễ bị tấn công. Điều quan trọng là hãy nhớ rằng PHP là một ngôn ngữ rất khoan dung, do đó thậm chí còn quan trọng hơn để đảm bảo to tie up nào rỗi trong mã hóa của bạn – ngay cả khi ứng dụng có vẻ là làm việc đúng cách.
Nói tóm lại, sự sẵn có của các PHP frameworks một điều tuyệt vời. Bạn thậm chí có thể tạo riêng cho bạn, mặc dù các nhà phát triển nhiều bầu chọn từ bất frameworks nổi tiếng nhất do sự phổ biến của chúng, hỗ trợ rộng lớn, và các diễn đàn/cộng đồng cho phép bạn tương tác với các nhà phát triển khác, những người sử dụng cùng một frameworks. Lưu ý, bạn nên luôn luôn kiểm tra dự án đầu tiên của bạn để quyết định xem bạn có nên sử dụng một frameworks hay không. Một số câu hỏi bạn nên hỏi bản thân bạn là: nó sẽ giúp bạn tiết kiệm, và bất kỳ ai khác có thể sử dụng nó, thời gian và công sức? Ứng dụng sẽ hoạt động tốt hơn? Nó sẽ cải thiện sự ổn định? Nếu bạn có thể có câu trả lời bất kỳ câu hỏi nào, một PHP frameworks có thể là câu trả lời đúng cho rằng dự án cụ thể.
  
    Vậy khi nào chúng ta sử dụng PHP Framework?
Đây là một câu hỏi phổ biến khá giống nhau của các nhà phát triển kinh nghiệm hay những người mới bắt đầu và thực sự không có câu trả lời xác đáng. Đối với những người mới bắt đầu, một Framework sẽ cung cấp cho bạn sự đơn giản và ổn định cho dự án, vì vậy nó là ý tưởng tốt để sử dụng PHP Frameworks bất cứ khi nào bạn có thể. Nó sẽ giúp giảm bớt hoặc loại bỏ những đoạn mã không đúng và đẩy nhanh quá trình hoàn thiện dự án web một cách khả thi nhất.
Mặc khác, nhiều nhà phát triển PHP có kinh nghiệm xem Frameworks là một công cụ “yếu” mà không hiểu làm thế nào để viết mã tốt nhất, sạch sẽ nhất và ít lỗi. Cho dù điều này có đúng hay không đi chăng nữa, nhưng thực tế của vấn đề là PHP Frameworks là một công cụ có thể được sử dụng để tiết kiệm thời gian và giúp bạn làm việc tốt hơn, coding tốt hơn thôi. Chả làm xấu bạn đâu.
Khi làm việc trên một dự án có giới hạn về thời gian, sử dung PHP Frameworks có vẻ như là một giải pháp tối ưu nhất nhằm đẩy nhanh quá trình viết mã. Vì vậy, nếu bạn đang trong thời gian khủng hoảng và cấp bách nhất của dự án đòi hỏi gấp rút về thời gian, PHP Frameworks lợi thế sẵn có bạn có thể sử dụng bất kỳ lúc nào bạn muốn. Một ví dụ khác, nên xem xét là khi bạn làm việc trên một dự án kiếm khá nhiều tiền… và giúp công việc trôi chảy kinh doanh phát đạt hơn.
   Tìm thấy điều gì trong PHP Framework?
Có rất nhiều tùy chọn sẵn sàng cho bất kỳ ai có thể tìm thấy trong PHP Frameworks, và thậm chí có các tùy chọn bạn có thể tạo ra cho riêng bạn, mặc dù đó là chỉ nên dùng cho các chuyên gia PHP. Khi tìm kiếm các Frameworks tốt nhất cho nhu cầu viết code PHP của bạn, điều quan trọng cần ghi nhớ những người sử dụng hoặc sửa đổi ứng dụng của bạn từ a – z. Nếu có nhiều người sử dụng các ứng dụng, có thể sử dụng PHP Frameworks phổ biến mà các nhà phát triển khuyên dùng. Mặc khác, nếu bạn muốn xây dựng các ứng dụng web sử dụng cá nhân riêng bạn, bạn sẽ được lựa chọn bất kỳ PHP Framework nào mà bạn cảm thấy thích – cho dù có phổ biến hay không.
Có nhiều yếu tố khác nhau để lựa chọn sử dụng PHP Frameworks bao gồm: tính dễ dùng, phát triển nhanh chóng, tính phổ biếng, tính năng mạnh mẽ và hỗ trợ từ các nguồn khác như Forum. Bạn nên thử vài PHP Frameworks khi bạn mới bắt đầu biết đầu sẽ tìm thấy Framework nào phù hợp nhất với nhu cầu chính đáng của bạn. Tất cả các Frameworks hơi khác nhau có điểm mạnh và điểm yếu cũng khác nhau luôn. Ví dụ như: Zen Framework đã phiên bản V3 và có đầy đủ tính năng cộng thêm hệ thống hỗ trợ rộng rãi vì đã phát triển từ rất lâu. Ngược lại, CakePHP là một hệ Framework ra đời sau Zen Framework và cũng có hỗ trợ tốt (Tương lai sẽ tốt hơn nữa), nhưng tính dễ dùng và thân thiện với người dùng hơn.
Như bạn đã thấy, mỗi Framework có những ưu điểm khác nhau, vì vậy tốt nhất là sử dụng thử và kiểm tra lỗi để tìm ra cái nào sẽ làm việc tốt nhất cho nhu cầu phát triển của bạn. Một các tuyệt với nhất nữa là tham khảo ý kiến đồng nghiệp của bạn trong các diễn đàn hay cộng đồng phát triển của Framework mà họ đa số sử dụng. Những người đó sẽ nêu ra những ưu điểm, tính năng, tính hỗ trợ và phạm vi cộng đồng của Framework
    Các lỗi thường gặp khi sử dụng PHP Framework:
Lỗi thường xảy ra ở bất kỳ bước nào trong giai đoạn viết code, nhưng PHP frameworks trợ giúp bạn để hạn chế đáng kể những lỗi xảy ra bằng cách cung cấp bạn cách viết mã tốt nhất. Các viết mã lặp đi lặp lại có thể dẫn tới những lỗi không mong muốn.
Có nghĩa là khi sử dụng bất kỳ PHP framework nào các bạn cần phải cân nhắc kỹ lưỡng. Ví dụ như, nếu bạn là một chuyên gia viết mã PHP, bạn phải lựa chọn cho mình PHP framework tốt nhất với nhiều hỗ trợ và tối ưu nhất (Xem liệt kê bên dưới là những PHP framework phổ biến nhất hiện tại). Có rất nhiều framework hỗ trợ ít hoặc không có, mặc khắc nó được xây dựng bởi những cá nhân hạn chế về kiến thức lập trình PHP. Những kiểu PHP framework có thể gây ra lỗi các ứng dụng của bạn và tồi tệ hơn xảy ra trong mã kịch bản có thể gây ra vấn đề về lỗi bảo mật nghiêm trọng với website của bạn
Những lỗi phổ biến nhất là không đảm bảo cơ sở dữ liệu của bạn và sự tương thích của máy chủ web với Framework nào đó. Ví dụ: Seagull PHP Framework đề xuất cấu hình Webserver như sau:
PHP: PHP 4.3.0 is the minimum, later versions work fine, as do versions PHP 5.1.1 and above. Avoid anything in the 5.0.x series
MySQL: MySQL 4.0.x, 4.1.x and 5.0.x are all supported. You can also use 3.23.x.
Apache: Seagull works fine with 1.3.x and 2.x series of Apache
Nếu bạn không đáp ứng được các yêu cầu tối thiểu này, bạn sẽ không thể tận dụng tối đa hiệu suất tốt nhất của Framework mà bạn lựa chọn. Thậm chí nếu bạn là một người lập trình PHP chuyên nghiệp, bạn luôn xem trước các tài liệu hướng dẫn để xác định tính thương thích trước khi sử dụng nó.
Tương tự với những lỗi phố biến đã đề cập ở trên, không phải sau quá trình cài đặt theo khuyến cáo của PHP Framework, nó có thể làm cho bạn nhức đầu hơn khi sử dụng. Ta lấy ví dụ ở đây là Seagull PHP Framework lần nữa, Wiki Seagull là bản tóm tắt chi tiết của một số bước quan trọng mà đôi khi bạn bất cẩn dễ dàng bỏ qua. Nó sẽ làm bạn mất thời gian hơn để thiết đặt Framework và làm theo hướng dẫn cài đặt, thời giạn bạn sẽ tiết kiệm rất nhiều khi phát triển ứng dụng nếu chăm chút một ít thời gian để cài đặt chính xác nhất và đạt yêu cầu nhất.
    Những PHP Framework tốt nhất và nên sử dụng:
Trong vài năm qua PHP là ngôn ngữ được lựa chọn đa số của các lập trình viên, đã có sự bùng nổ khi PHP Framework xuất hiện. Có nhiều cuộc tranh luận về những gì tốt nhất mà PHP Framework làm được và chưa làm được, vì thực tế cho thấy rằng không phải bất cứ ứng dụng nào được xây dựng bằng PHP Framework là tốt nhất và đạt yêu cầu nhất với tất cả chúng ta. Bên dưới là tổng hợp những PHP Framework tốt nhất và đáng sử dụng nhất trong thời điểm hiện nay:

The Zend Framework
The Zend Framework ra đời sau khi được cộng đồng phát triển và tích hợp phần lớn ứng dụng phong cách web 2.0. Bởi vì có rất nhiều sự hỗ trợ từ cộng đồng, Zend còn được gọi là “The PHP Company”. Nó có tính năng mạnh mẽ được xây dựng cho sự phát triển của các công ty và nó đòi hỏi có kiến thức sâu rộng về PHP.

CakePHP
CakePHP là sự lựa chọn tuyệt vời dành cho những người mới bắt đầu đến các lập trình viên PHP chuyên nghiệp. Nó hoạt động dựa theo nguyên tắc sẵn có, tập trung rất nhiều vào việc phát triển nhanh các ứng dụng, chính vì vậy CakePHP là một Framework được sử dụng để phát triển nhanh chóng các ứng dụng web. CakePHP nhanh chóng phát triển hệ thống hỗ trợ từ cộng đồng rộng lớn, khá đơn giản và khả năng mở rộng làm cho CakePHP là một trong những Framework phổ biến nhất hiện nay.

Symfony
Symfony là Framework nâng cao hơn dành cho các lập trình viên mục đích tạo ra các ứng dụng dành cho Doanh Nghiệp – Đáng chú ý nhất là Askeet và Yahoo! Bookmarks. Đây là PHP Framework nguồn mở với đầy đủ tính năng và làm tất cả, nhưng đó chính là điểm yếu của nó so với sự phát triển của các Framework. khác.

Codelgniter
Codelgniter nổi tiếng vì tính dễ sử dụng, hiệu suất cao và tốc độ nhanh. Không giống như Symfony, PHP Framework này thật lý tưởng để chia sẽ các tài khoản Hosting hoặc khi bạn muốn một Framework với. Nó cung cấp giải pháp đơn giản nhất và một thư viện các Video hướng dẫn, diễn đàn hỗ trợ, hướng dẫn người dùng và Wiki hỗ trợ cho bạn. Mới sử dụng Framework thì bạn nên cân nhắc và sử dụng thử Codelgniter.

Seagull
Seagull là một PHP Framework mới ra đời nhằm mục đích xây dựng ứng dụng web dễ dàng nhất, dòng lệnh và giao diện ứng dụng.Seagull là Framework lý tưởng cho người mới bắt đầu để nâng cao kiến thức lập trình của mình cao hơn. Đối với người mới bắt đầu, Seagulll có tính năng như một thư viện mẫu có thể được tùy chỉnh để phù hợp với nhu cầu sử dụng của bạn và cho các chuyên gia lập trình PHP, Seagull cung cấp một loạt các tùy chọn khác bao gồm các bài thực hành, các tiêu chuẩn và codebase modular để xây dựng các ứng dụng web nhanh chóng và dễ dàng. Seagull có một cộng đồng hỗ trợ rộng lớn và nhiều tài liệu tham khảo.
    Kết luận:
PHP frameworks là một giải pháp tuyệt vời dành cho các nhà phát triển web tập trung nhiều kỹ năng để giảm bớt các bước lặp đi lặp lại trong quá trình viết code, đẩy nhanh quá trình phát triển và cung cấp hướng lập trình viết mã tốt nhất để xây dựng ứng dụng web. Điều này giúp các bạn phát triển các ứng dụng web phong phú, hạn chế các nguy cơ bảo mật trong các đoạn mã của bạn.
Trong khi một số lập trình viên PHP không cảm thấy cần thiết để sử dụng Framework để phát triển ứng dụng web, nhưng đó là một lợi thế cần thiết để phát triển nhanh ứng dụng đáp ứng nhu cầu của khách hàng của họ. Và đối với những người mới bắt đầu Framework có thể tăng cường khả năng học hỏi viết mã PHP tốt nhất và giảm tối thiểu lỗi xảy ra khi viết mã PHP.
Hiện nay có rất nhiều PHP Frameworks và vì thế các lập trình viên nên chắc chắn rằng có thể lựa chọn Framework tốt nhất đáp ứng nhu cầu của mình dựa theo tính năng, hỗ trợ, tốc độ phát triển, khả năng mở rộng và các tính năng khác. Một số PHP Frameworks tham khảo bao gồm: Zend Framework, CakePHP, Symfony, Codelgniter và Seagull

1 nhận xét: