1 / 47

Zend Framework

Zend Framework. Thomas Weidner I18N Team Leader and Core Developer, for the Zend Framework. Now, the world's most popular web programming language gets even better with an easy to use framework for developing the next generation of web applications. Nội dung. Giới thiệu

hachi
Télécharger la présentation

Zend Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Zend Framework Thomas Weidner I18N Team Leader and Core Developer, for the Zend Framework Now, the world's most popular web programming language gets even better with an easy to use framework for developing the next generation of web applications.

  2. Nội dung • Giới thiệu • Phân tích và thiết kế • Hiện thực các module • Tổng kết Visual Idea

  3. Giới thiệu • Giới thiệu framework: Visual Idea (VI) • Vị trí của VI trong quy trình phát triển web • Lợi ích VI mang lại khi hiện thực website Zend Framework

  4. Giới thiệu framework: Visual Idea(VI) • Khái niệm framework[5]: Framework là khung sườn đã xây dựng sẵn nhiều công cụ lập trình và các thư viện cũng như tiện ích để phát triển ứng dụng một cách tốt nhất. • Framework Visual Idea(viết tắt là VI): là một framework được xây dựng với mục đích giúp phát triển nhanh và trực quan ứng dụng web dựa trên những ý tưởng mới và công nghệ web mới nhất. Zend Framework

  5. Vị trí của VI trong quy trình phát triển web[6] VI Framework Bước 4 Bước 2 Bước 3 Bước 1 Kiểm tra, triển khai và bảo trì ứng dụng web. Liện hệ và phân tích yêu cầu từ khách hàng và tư vấn các chức năng của website. Thiết kế mỹ thuật và thiết kế giao diện cho website. Hiện thực các chức năng của website theo yêu cầu. Zend Framework

  6. Lợi ích VI mang lại khi hiện thực website • Cácđốitượngthamgia website Zend Framework

  7. Các lợi ích VI mang lại khi thiết kế website • Tận dụng được lại tất cả những gì đã viết trước đó • Dễ dàng viết module mới với hỗ trợ trực quan • Tận dụng mô hình MVC trong lập trình • Tổ chức giao diện nhanh chóng và tiện lợi • Thay đổi giao diện trực quan bằng cách kéo thả • Giao diện quản lý trực quan gần với ứng dụng desktop • Đa ngôn ngữ tự động • Phân quyền mềm dẽo không hạn chế các quyền trên tác vụ. Zend Framework

  8. Nội dung • Giới thiệu • Phân tích và thiết kế • Hiện thực các module • Tổng kết Visual Idea

  9. Phân tích thiết kế hệ thống • Bài toán thiết kế framework • Thiết kế các thành phần framework Zend Framework

  10. Bài toán thiết kế framework Thiết kế framework là bài toán cho đến nay chưa có lời giải tối Zend Framework

  11. MVC web app framework(model-view-controller) Database access Lucene-compatible Search engine Input filtering and validation Authentication Access control Session handling I18N, translation PDF file reading and writing HTTP client XmlRpc REST web services RSS and Atom feeds Google Gdata client Logging Mail reading and sending Caching Configuration file handling Command-line option parsing What’s in the Zend Framework? • Simple, convenient object-oriented solutions to common web application development tasks: Zend Framework

  12. API Overview Zend Framework

  13. Component Overview 1/4 • MVC Layer • Zend_Controller – Controller Pattern • Zend_View – View Pattern • DATA Layer • Zend_Db – Database Handling • Zend_Pdf – PDF Creation and Handling • Zend_Search – Lucene Search • I18N Layer • Zend_Date – Localized Date handling • Zend_Locale – I18N Base class, Localisation • Zend_Measure – Measurements, conversions • Zend_Translate – Translations Zend Framework

  14. Component Overview 2/4 • WEB Services Layer • Zend_Feed – RSS und ATOM Feeds • Zend_GData – Google Data Client • Zend_Http – HTTP Client and Server • Zend_Json – JSON Access • Zend_Rest – Rest Client and Server • Zend_XmlRpc – XMLRPC Client and Server • Zend_Service – Access for different web services including • Askimet • Amazon • Audioscrobbler • Delicious • Flickr • Simpy • Yahoo • and more are already in the incubator or proposed Zend Framework

  15. Component Overview 3/4 • Core Layer • Zend_Acl – Access Controll List, Limiting ressources, roles, users • Zend_Auth – Authentication • Zend_Cache – Caching • Zend_Config – Configuration Handling • Zend_Console – Console Options Handling • Zend_Filter – Filtering Input data • Zend_Log – Log file Handling (log4j based) • Zend_Mail – Mail sending and receiving • Zend_Memory – Memory Access when memory is limited • Zend_Registry – Storing data within an application registry • Zend_Session – Session Handling • Zend_Validate – Validating Zend Framework

  16. Component Overview 4/4 • Incubator Components… after 1.0 release, already partitial useable • Zend_Currency – Localized currency handling (I18N) • Zend_Environment – (Core) • Zend_Form – Form handling (MVC) • Zend_Soap – Soap Client and Server (Services) • Zend_Timesync – Timeserver access (NTP, SNTP) (I18N) • Future Components • Several additional components proposed including… • LDAP, Calendar, PayPal, YouTube, Yaml… • Proposals • http://framework.zend.com/wiki/display/ZFPROP/Home Zend Framework

  17. Directory layout /Zend /Zend/Locale.php /Zend/Locale /Zend/Locale/Format.php … A component is always a base class and all subclasses in it’s same named directory. .. This way single components can be used without installing the complete framework… Zend Framework

  18. Minimum requirements • Some Minimum requirements • PHP 5.1.4 • Webserver • Standard installation • commonly no additional extensions needed • That’s all… Zend Framework

  19. A simple example 1/4 • A simple example – Localisation: • <?php • require_once ‘Zend/Locale.php’; • $locale = new Zend_Locale(); • print $locale->toString(); Zend Framework

  20. A simple example 2/4 • Each class can be used alone: • <?php • require_once ‘Zend/Locale.php’; • $locale = new Zend_Locale(); • print $locale->toString(); Requiring the file is enough… Each component knows which other components it has to load Zend Framework

  21. A simple example 3/4 • Location of the ZF components: • <?php • require_once ‘Zend/Locale.php’; • $locale = new Zend_Locale(); • print $locale->toString(); All components are in the same directory. Zend Framework

  22. A simple example 4/4 • The result: our users language • <?php • require_once ‘Zend/Locale.php’; • $locale = new Zend_Locale(); • print $locale->toString(); The visiting users language… Zend Framework

  23. Localisation • Possibilities of Zend_Locale • Get the client users languages • Get localized data • Base localisation class for ZF • Locale aware formating of numbers, dates and times • Example1 • Example2 Zend Framework

  24. Localized data • Localized and translated data: • Translation for all languages • Translation for all scripts • Translation for countries and territories • Calendar formats • Month- and Day names • Standard formats for Date and Time • Currency name, signs and formats • Characters used in this language • Yes and no strings • … Zend Framework

  25. Locale aware formating rules • Zend_Locale_Format • Converting from one script to another • Normalizing of numbers (12,345.45 -> 12345.45) • Localizing of numbers (12345.45 -> 12,345.45) • Checking if a localized number is valid • Normalizing date & time inputs • Checking if a localized date or time input is valid Zend Framework

  26. Script conversion • From european digits to arabic digits and visa versa <?phprequire_once ‘Zend/Locale.php’; $number = “12345”; $converted = Zend_Locale_Format::convertNumerals($number, ‘Latn’, ‘Arab’); $european = Zend_Locale_Format::convertNumerals($converted, ‘Arab’, ‘Latn’); • Example3 Zend Framework

  27. Number normalization • Normalizing numbers <?phprequire_once ‘Zend/Locale.php’; $number = “12.345,67”; $normal = Zend_Locale_Format::getNumber($number); • Example4 Zend Framework

  28. Number localization • Localizing numbers <?phprequire_once ‘Zend/Locale.php’; $number = 12345.67; $normal = Zend_Locale_Format::toNumber($number); • Example5 • Example8 Zend Framework

  29. Multilingual applications • Making applications running worldwide • Translating output • Format of date and time • Format of numbers • Format of currencies • Knowing allowed characters of a language Zend Framework

  30. Translation • Gettext… the old way • <?phpbindtextdomain(‘domain’, ‘path’);textdomain(‘domain’);print gettext(‘my translation’); • Fixed directory layout /path/LC_ALL/locale/ • Needs an extension to work • Complicated for people unfamiliar to GNUs gettext Zend Framework

  31. Zend_Translate • Gettext… with Zend_Translate • <?phprequire_once ‘Zend/Translate.php’; // within bootstrap file$tr = new Zend_Translate(AN_ARRAY, ‘Path/to/myfile.mo’, ‘de’);print $tr->_(‘my translation’); • No fixed directory layout • No extension needed • Same API for all sources Zend Framework

  32. Zend_Translate sources • Zend_Translate sources • One API for all sources • Supported sources are: • Array • Csv • Gettext • Qt • Tmx • Xliff • More to come (SQL, XmlTm, …) Zend Framework

  33. Switching sources • Changing sources ? No problem… • <?phprequire_once ‘Zend/Translate.php’; // within bootstrap file$tr = new Zend_Translate(AN_CSV, ‘Path/to/myfile.csv’, ‘de’);print $tr->_(‘my translation’); • <?phprequire_once ‘Zend/Translate.php’; // within bootstrap file$tr = new Zend_Translate(AN_GETTEXT, ‘Path/to/myfile.mo’, ‘de’);print $tr->_(‘my translation’); • Just one small change, same API Zend Framework

  34. Conditional translating • Is a string translateable ? • <?phprequire_once ‘Zend/Translate.php’; // within bootstrap file$tr = new Zend_Translate(AN_CSV, ‘Path/to/myfile.csv’, ‘de’);if ($tr->isTranslated(‘my translation’)) { // do something} else { // no translation, do something else} • Not possible with php Zend Framework

  35. Allowed characters • Verifying input… but localized ? • <?phprequire_once ‘Zend/Locale.php’; // within bootstrap file$tr = new Zend_Locale();$de = $tr->getTranslationList(‘characters’, ‘de’);$fr = $tr->getTranslationList(‘characters’, ‘fr’); • For more than 128 languages • Example6 Zend Framework

  36. Language selectbox • Creating a localized selectbox for languages ? • <?phprequire_once ‘Zend/Locale.php’; // within bootstrap file$tr = new Zend_Locale();$de = $tr->getTranslationList(‘language’);foreach ($de as $key => $value) { $fr = $tr->getTranslationList(‘language’, $key); print $fr[$key];} • Example7 Zend Framework

  37. Yes or No • How to realize a yes-no for every language ? • <?phprequire_once ‘Zend/Locale.php’; // within bootstrap file$tr = new Zend_Locale();$de = $tr->getQuestion(); • Example9 Zend Framework

  38. Normalizing dates • Monthnames / Daynames • <?phprequire_once ‘Zend/Locale.php’; // within bootstrap file$date = “12.März.2007 20:15:00”;$tr = new Zend_Locale_Format::getDate($date, ‘de’);print_r($tr); • Example10 Zend Framework

  39. Working with dates • Zend_Date • One class • Handles all meanings (date, time, parts, sun…) • Simple API • Easy handling • ISO Standard also PHP’s GNU supported • Knows more than 50 standard represenations • Unlimited (more than 64bit) dates supported Zend Framework

  40. Working with dates 2 • Capabilities • Computing dates • Get sunset / sunrise for cities • Easy changing with ISO ( dd.MM.yyyy HH:mm:ss a ) • Supports different standards( ISO, GNU, RFC2822 (mail), W3C, RSS, Cookies…) Zend Framework

  41. Date maths • Computing dates • Normalized • Localized • Added / Substracted • Checked (earlier, later, equal • Splitted • Converted • … Zend Framework

  42. Date example • Example11 • $date = new Zend_Date(‘20070414T122050’, Zend_Date::ISO_8601);$date->addMonth(2);$date->subYear(6); • If ($date->isLeapYear()) { // LeapYear} else { // NO LeapYear} Zend Framework

  43. Checking dates • Check if a date is a date • If ( Zend_Date::isDate(’14. April. 2007 10:20:55’)) • Example12 • Compare parts • If ( $date->compareWeekday(2)) • Example13 Zend Framework

  44. Stay up • Calculating sunset / sunrise • With php… complicated • With Zend_Date… just know your city • $city = Zend_Date_Cities::City(‘Amsterdam’);$date = new Zend_Date();$uptime = $date->getSunrise($city) Zend Framework

  45. At the end • Simple solution • Easy handling • Easy extending – 80% use case • High quality • Growing fast Zend Framework

  46. Tài liệu tham khảo • Adfadf • Adfadf • Adfa • sdfdfasdf • http://www.codeproject.com/KB/architecture/WhatIsAFramework.aspx • http://vmtgroup.net/index.php?page=dichvu&id=381&idsub=389&idtin=741 Zend Framework

  47. Thanks http://framework.zend.com/

More Related