1. Trang chủ
  2. » Công Nghệ Thông Tin

báo cáo thực tập tốt nghiệp Tìm hiểu Framework Symfony và xây dựng hệ thống website quản lý thuế đất

36 1K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 1,1 MB

Nội dung

Đồ án nêu lên các đặc điểm, cấu trúc của Symfony 1.4 . Cách cài đặt và các kỹ thuật cơ bản để áp dụng Symfony xây dựng 1 hệ thống website quản lý. Từ đó phân tích hệ thống quản lý thuế đất và dùng symfony để xây dựng website quản lý Thuế đất

Trang 1

LỜI NÓI ĐẦU

Ngày nay chúng ta đang sống trong một kỷ nguyên bùng nổ vềcông nghệ thông tin Công nghệ thông tin không chỉ dừng lại ở mục đíchphục vụ cho khoa học kỹ thuật mà còn đi sâu vào đời sống, chính trị,kinh tế, xã hội, trở nên thân thiện, gần gũi, mang lại nhiều lợi ích cho conngười

Trong các ngành đang phát triển nhất hiện nay của công nghệthông tin là thiết kế và quản trị một websile đang được nhiều người quantâm Nhưng khi thiết kế một websile điều đầu tiên được các lập trình viênquan tâm là ngôn ngữ lập trình Có thể nói PHP là lựa chọn tối ưu chomột websile

Sau khi về nơi thực tập được các anh chị ở trung tâm hỗ trợ pháttriển công nghệ thông tin trực thuộc sở khoa học và công nghệ tỉnh BìnhĐịnh (sau đây gọi tắt là trung tâm) hướng dẫn tìm hiểu Frameworkssymfony để ứng dụng phát triển một websile tính thuế đất, trong quátrình thực tập em đã được biết thêm rất nhiều kiến thức về Frameworkssymfony một trong những frameworks được sử dụng phổ biến nhất hiệnnay

Trong 2 tháng thực tập tại trung tâm, em đã thu được rất nhiềukinh nghiệm quý báu, em xin chân thành cảm ơn nhân viên của trung tâm

đã nhiệt tình hướng dẫn, giúp đỡ cho em hoàn thành tốt nhiệm vụ đượcgiao trong thời gian thực tập tại đây, đặc biệt là thầy Nguyễn Thanh Tuấn

đã trực tiếp giám sát, hướng dẫn em trong thời gian thực tập vừa qua

Em xin chân thành cảm ơn!

Sinh viên

Ngô Hoàng Việt

Trang 2

MỤC LỤC

LỜI NÓI ĐẦU 1

MỤC LỤC 2

PHẦN I 3

GIỚI THIỆU VỀ TRUNG TÂM HỖ TRỢ PHÁT TRIỂN CÔNG NGHỆ THÔNG TIN BÌNH ĐỊNH 3

1 Đôi nét về trung tâm 3

2 Cơ cấu tổ chức của trung tâm 3

3 Chức năng và nhiêm vụ của trung tâm 4

PHẦN II 5

NỘI DUNG THỰC TẬP 5

1 Mục đích và nội dung thực tập 5

1.1 Mục đích 5

1.2 Nội dung thực tập 5

2 Nhật ký thực tập 6

3 Tìm hiểu về Frameworks symphony 7

3.1 Giới thiệu symfony 7

3.2 Những tính năng của symfony 7

3.3 Những tính năng dự án web được tự động 8

3.4 Môi trường và công cụ phát triển 9

3.5 Những khái niệm cơ bản 9

4 Phân tích và thiết kế hệ thông webside tính thuế đất 18

4.1 Thực tiễn và mục đích 18

4.2 Quy trình của công tác thuế 19

4.3 Các chức năng 20

PHẦN III 34

KẾT LUẬN 34

Trang 3

PHẦN I

GIỚI THIỆU VỀ TRUNG TÂM HỖ TRỢ PHÁT TRIỂN CÔNG

NGHỆ THÔNG TIN BÌNH ĐỊNH

1 Đôi nét về trung tâm.

Trung tâm hỗ trợ phát triển công nghệ thông tn Bình Định đượcthành lập theo Quyết định 81/2002/QĐ-UB ngày 22/7/2002 của UBNDTỉnh Bình Định

Trung tâm có tên tiếng Anh: BinhDinh Centre for DevelopmentalAssistance of Imformation Technology (viết tắt là: CEDASIT)

Trung tâm có trụ sở tại 68 Lê Duẩn, thành phố Quy Nhơn, tìnhBình Định

2 Cơ cấu tổ chức của trung tâm.

Cơ cấu tổ chức của trung tâm gồm các phòng chuyên môn sau:

Phòng hành chính – tổng hợp.

- Thực hiện công tác tổ chức, cán bộ của trung tâm

- Quản lý công tác tổ chức, cán bộ của trung tâm

- Thực hiện công tác hành chính, văn thư, lưu trữ, lễ tân…

- Thực hiện công tác quản trị, thủ quỹ, tạp vụ

- Quản lý giáo trình, thư viện

Trang 4

Phòng công nghệ

- Thực hiện thiết kế, xây dựng và bảo trì phần mềm

- Thực hiện lắp đặt, bảo trì, bảo dưỡng phần cứng cho các hoatđộng dich vụ

- Triển khai các đề tài, dự án lĩnh vực công nghệ thông tin

Phòng tư vấn – tiếp thị

- Thực hiện hoạt động tư vấn và tiếp thị học viên

- Thực hiện hoạt đổng quảng cáo, dịch vụ về lĩnh vực côngnghệ thông tin

- Thực hiện công tác quan hệ học viên, giới thiệu việc làm chohọc viên

- Tổ chức thi đấu vào các lớp học trình viên và lấy Feedbackhọc viên

- Thực hiện Website của trung tâm

3 Chức năng và nhiêm vụ của trung tâm.

Chức năng của trung tâm

Trung tâm có chức năng thực hiện liên kết đào tạo nguồn nhân lực,sản xuất và gia công phần mềm, hợp tác quốc tế về lĩnh vực công nghệthông tin và thực hiện các dịch vụ về công nghệ thông tin

Nhiêm vụ của trung tâm

 Liên kết đào tạo nguồn nhân lực trong lĩnh vực công nghệthông tin

 Sản xuất phần mềm máy tính theo đơn đặt hang và cung ứngcho các tổ chức, cá nhân có nhu cầu

 Dich vụ thiết kế, lắp đặt hệ thống mạng vi tính, cung cấp cácdịch vụ Internet và gia tang trên mạng

 Dịch vụ cung cấp các thiết bị điện tử, viễn thông, công nghệthông tin, thiết bị văn phòng

 Tư vấn lập dự án đầu tư trong lĩnh vực công nghệ thông tin

 Thực hiện hợp tác quốc tế trên các lĩnh vực hoạt động củatrung tâm

 Quản lý công tác tổ chức, cán bộ, viên chức, tài chính, tài sảncủa trung tâm theo phân cấp,và theo quy định của Nhà nước

Trang 5

• Tính tổ chức kỷ luật trong nghề nghiệp.

• Nâng cao ý thức của người cán bộ khoa học

• Tinh thần trách nhiệm đối với công việc được giao

• Tinh thần khắc phục mọi khó khăn, phát huy tính tích cựctrong học tập

• Bổ sung những kiến thức cần thiết cho sinh viên trong thờigian thực tập vào công việc sau này, nhằm củng cố thêmnhận thức và nâng cao tay nghề chuyên môn của người cán

bộ khoa học trong tương lai

1.2 Nội dung thực tập

 Tìm hiểu và nghiên cứu về Framewords symfony

Trang 6

 Tìm hiểu phương pháp làm website trên nền symfony.

 Thực hành cài đặt symfony

 Thiết kế trang website tính thếu đất

 Tham gia các cuộc họp của sở

 Trao đổi học hỏi kinh nghiệm

Kế hoạch thực tập được thực hiện:

Tuần 1 • Đến cơ quan gặp mặt và làm quen với cán bộ trong

Trung tâm

• Nắm bắt tình hình chung của phòng công nghệ và Trung tâm

Tuần 2 •Tìm hiểu cơ cấu tổ chức, chức năng, nhiệm vụ công

việc tại trung tâm

•Tìm hiểu một số trang web do phòng thiết kếTuần 3 Cập nhâp các công cụ cần thiết cho việc thiết kế

một website

Cập nhập lại thiết thức về ngôn ngữ PHPTuần 4 Tìm hiểu về cách lập trình, thiết kế môt website

Tuần 6 Tham gia thiết kế website tính thuế đấtTuần 7 Thống kê thu thập nội dung viết báo cáo thực tập

Tổng kết thực tập

Trang 7

3 Tìm hiểu về Frameworks symphony

3.1 Giới thiệu symfony

Là một frameworks tổ chức việc phát triển ứng dụng bằng việc tựđộng hóa nhiều mẫu được dùng cho một mục đích xác định Mộtframework tạo cấu trúc cho mã, thúc đẩy lập trình viên viết những mã tốthơn, dễ đọc hơn và dễ bảo trì hơn Cuối cùng, là một frameworks làmcho việc lập trình dễ hơn bởi vì nó bao hàm những tác vụ phức tạp trongnhững câu lệnh đơn giản

Symfony là một frameworks đầy đủ được thiết kế để tối ưu việcphát triển ứng dụng web bằng một vài đặc điểm chính Với những ngườimới bắt đầu, nó phân chia những qui tắc nghiệp vụ, server logic và phầnhiển thị của ứng dụng web Nó có những công cụ và class để thu ngắnthời gian phát triển của những ứng dụng web phức tạp Thêm vào đó, nó

tự động hóa những công việc thông thường để lập trình viên có thể tậptrung hoàn toàn vào những đặc điểm của ứng dụng Kết quả cuối cùngcủa những điểm lợi này là không cần phải lặp lại (reinvent the wheel)mỗi lần tạo ứng dụng web!

Symfony được viết hoàn toàn bằng PHP 5 Nó đã được kiểm tramột cách hoàn hảo trong nhiều dự án thực tế khác nhau và thực sự đượcdùng cho những website kinh doanh điện tử có yêu cầu cao Nó tươngthích với hầu hết các loại cơ sở dữ liệu, bao gồm MySQL, PostgreSQL,Oracle, và Microsoft SQL Server Nó chạy trên hệ điều hành Unix vàWindows Hãy bắt đầu xem xét những tính năng của nó

3.2 Cài đặc symfony

Trước tiên, chúng ta phải có một web server (Apache chẳng hạn),một hệ quản trị cơ sở dữ liệu (MySQL, PostgreSQL, hoặc SQLite), vàPHP 5.2.4 trở lên

Chúng ta sẽ sử dụng dòng lệnh rất nhiều, tốt nhất là sử dụng hệđiều hành họ Unix, nhưng nếu bạn dùng Windows, bạn cần gõ các lệnh

từ cửa sổ cmd

Trang 8

Để cài đặt symfony, download

http://symfony.com/download#symfony1 trên trang web symfony.Hướng dẫn này được viết trên symfony 1.2, hãy download phiên bản mớinhất của symfony 1.2 Ở đây tôi sẽ giới cách cài đặt symfony trênwindows

Download, giải nén, đổi tên thư mục thành symfony Sau khi đổitên thư mục thành symfony, chúng ta có thư mục như sau c:\development\sfprojects\jobeet\lib\vendor\symfony

3.3 Những tính năng của symfony

Symfony được xây dựng để thực hiện các yêu cầu sau:

 Dễ dàng cài đặt và cấu hình trên hầu hết các hệ điều hành

 Độc lập với hệ cơ sở dữ liệu

 Dễ dung trong hầu hết các trường hợp nhưng vẫn đủ mềmdẻo để thích nghi với những trường hợp phức tạp

 Hoạt động theo cấu hình định trước, lập trình viên chỉ cần.cấu hình trong những trường hợp riêng biệt

 Tuân theo những hoạt động và mẫu thiết kế tốt nhất

 Sẵn sàng cho môi trường xí nghiệp, thích nghi với nhữngchính sách và kiến trúc công nghệ thông tin và đủ ổn địnhcho những dự án dài hạn

 Mã rất dễ đọc, với những chú thích kiểu phpDocumentor, dễdàng bảo trì

 Dễ dàng mổ rộng, cho phép tich hợp với những thư viênkhác

3.4 Những tính năng dự án web được tự động

Trang 9

Hầu hết các chức năng thông thường của những dự án web được tựđộng trong symfony, như sau:

 Lớp internationalization có sẵn cho phép phiên dịch giaodiện, dữ liệu cũng như là content localization

 Phần presentation sử dụng template và layout có thể đượcxây dựng bởi người thiết kế HTML mà không cần có kiếnthức về framework Các helper làm giảm số lượng mãpresentation phải viết bằng cách tóm gọn các phần của mãvào những function đơn giản

 Các form hỗ trợ kiểm tra và điền tự động, và điều này đảmbảo chất lượng tốt của dữ liệu trong cơ sở dữ liệu và kinhnghiệm người sử dụng tốt hơn

 Việc escape output bảo vệ các ứng dụng khỏi những tấncông thông qua dữ liệu bị hỏng

 Những tính năng quản lý cache giúp giảm lượng băng thông

và tải của máy chủ

 Những tính năng phân quyền và xác nhận giúp việc tạo cácquản lý những mục hạn chế và bảo mật người dùng dễ dànghơn

 Việc định hướng và các URL thông minh làm cho phần địachỉ của các trang trở nên thân thiện với máy tìm kiếm

 Các tính năng quản lý API và email sẵn có cho phép ứngdụng web vượt qua những tương tác trình duyệt cổ điển

 Các danh sách trở nên thân thiện với người dùng hơn nhờviệc phân trang, sắp xếp và tìm kiếm 1 cách tự động

 Các factory, plugins và mixins cung cấp khả năng mở rộng ởmức cao

 Các tương tác AJAX dễ hiện thực nhờ vào các helper 1 dòngtóm lượt những hiệu ứng javascript tương thích với các trìnhduyệt

3.5 Môi trường và công cụ phát triển

Để đáp ứng những yêu cầu của những doanh nghiệp có các chuẩnviết mã riêng và các qui tắc quản lý dự án, symfony có thể hoàn toàn

Trang 10

được tùy biến Mặc nhiên nó cung cấp 1 vài môi trường phát triển vàđược gói gọn với nhiều công cụ để tự động hóa những nhiệm vụ côngnghệ phần mềm thông thường:

 Các công cụ sinh mã tự động rất tuyệt cho việc tạo bảnprototype và phần quản lý backend chỉ với vài dòng lệnh

 Unit và funtional testing framework sẵn có cung cấp nhữngcông cụ rất tốt cho phép test-driven development

 Debug: giúp debug tất cả thông tin mà lập trình viên cần trêntrang

 Giao diện chế độ dòng lệnh tự động hóa triển khai các ứngdụng giữa hai server

 Tính năng logging cung cấp cho adminnistrators những chitiết đầy đủ về sự hoạt động của một ứng dụng

3.6 Những khái niệm cơ bản

Trước khi chúng ta bắt đầu với symfony, chúng ta nên tìm hiểu 1vài khái niệm cơ bản Hãy bỏ qua nếu chúng ta đã biết về OOP, ORM,RAD, YAML, và PEAR

Symfony được phát triển trên PHP 5 (http://www.php.net/) vàđược dùng để xây dựng những ứng dụng web sử dụng cùng ngôn ngữ Vìvậy, việc hiểu biết chắc chắn PHP 5 là điều kiện cần để tận dụng tất cảchức năng của framework này

3.6.1 Lập trình hướng đối tượng (OOP)

Lập trình hướng đối tượng (gọi tắt là OOP, từ chữ Anh ngữ oriented programming), hay còn gọi là lập trình định hướng đối tượng, là

object-kĩ thuật lập trình hỗ trợ công nghệ đối tượng OOP được xem là giúp tăngnăng suất, đơn giản hóa độ phức tạp khi bảo trì cũng như mở rộng phầnmềm bằng cách cho phép lập trình viên tập trung vào các đối tượng phầnmềm ở bậc cao hơn Ngoài ra, nhiều người còn cho rằng OOP dễ tiếp thuhơn cho những người mới học về lập trình hơn là các phương pháp trước

đó

Trang 11

Một cách giản lược, đây là khái niệm và là một nỗ lực nhằm giảmnhẹ các thao tác viết mã cho người lập trình, cho phép họ tạo ra các ứngdụng mà các yếu tố bên ngoài có thể tương tác với các chương trình đógiống như là tương tác với các đối tượng vật lý.

Những đối tượng trong một ngôn ngữ OOP là các kết hợp giữa mã

và dữ liệu mà chúng được nhìn nhận như là một đơn vị duy nhất Mỗi đốitượng có một tên riêng biệt và tất cả các tham chiếu đến đối tượng đóđược tiến hành qua tên của nó Như vậy, mỗi đối tượng có khả năng nhậnvào các thông báo, xử lý dữ liệu (bên trong của nó), và gửi ra hay trả lờiđến các đối tượng khác hay đến môi trường

PHP 5 hiện thực các mẫu của class, object, method và các thứkhác Những ai không quen với những khái niệm này có thể xem trong

http://www.php.net/manual/en/language.oop5.basic.php

3.6.2 Magic methods

Một trong những sức mạnh của đối tượng PHP là cách dùng cácmagic method (phương thức ma thuật) Đây là những phương thức có thểđược sử dụng để override hành vi mặc định của các class mà không cầnchỉnh sửa bên ngoài code Nó làm syntax của PHP ngắn lại và tăngcường khả năng mở rộng Nó dễ dàng tổ chức bởi vì tên của những magicmethod này bắt đầu bằng 2 dấu gạch dưới ( )

Ví dụ khi hiển thị 1 object, PHP tự động tìm phương thức toString() của object này để hiển thị nếu 1 định dạng hiển thị tuỳ biếnđược định nghĩa bởi lập trình viên:

Trang 12

3.6.3 Kho ứng dụng và phần mở rộng của PHP (PEAR)

PEAR - PHP Extension and Application Repository - là "mộtframework và hệ thống phân phối cho những component PHP có khảnăng tái sử dụng" PEAR cho phép bạn download, cài đặt, nâng cấp và gỡ

bỏ các script PHP Khi sử dụng 1 gói PEAR, bạn không cần quan tâmnhững script này đặt ở đâu, làm sao có thể kiếm được hay làm sau để mởrộng giao diện dòng lệnh (CLI)

PEAR là 1 project community-driven được viết bằng PHP và đượckèm theo các bản phân phối PHP chuẩn

TIP Website của PEAR, http://pear.php.net/, cung cấp tài liệu vàcác gói được nhóm thành các mục

PEAR là cách chuyên nghiệp nhất để cài các thư viện trong PHP.Symfony khuyến cáo sử dụng PEAR để cài đặt cho các project Cácplugins của symfony là những gói PEAR với những cấu hình đặc biệt Tựbản thân symfony cũng là 1 gói PEAR

Chúng ta không cần biết tất cả các cú pháp PEAR để sử dụngsymfony Chúng ta chỉ cần hiểu nó làm gì và cài đặt Chúng ta có thểkiểm tra PEAR có đưọc cài ở máy bạn không bằng cách gõ như sau trongCLI:

PHP Code:

pear info pear

Lệnh này sẽ trả về phiên bản của bản PEAR bạn đang dùng Dự ánsymfony có kho chứa và kênh PEAR riêng Chú ý rằng những kênh nàychỉ phù hợp với PEAR bản 1.4.0 trở đi, vì vậy chúng ta cần nâng cấpphiên bản PEAR nếu nó cũ hơn Để nâng cấp PEAR, sử dụng lệnh sau:pear upgrade PEAR

3.6.4 Cơ sở dữ liệu có tính chất quan hệ (ORM)

PHP 5 và symfony có tính hướng đối tượng Để truy xuất vào cơ

sở dữ liệu theo cách hướng đối tượng, cần phải có một giao diện chuyển

Trang 13

đổi logic đối tượng sang logic quan hệ Giao diện này gọi là sự ánh xạđối tượng có tính quan hệ (object-relational mapping) hay ORM.

Một lợi ích của lớp trừu tượng đối tượng có tính quan hệ là nóngăn chúng ta sử dụng cú pháp đặc trưng cho một cơ sở dữ liệu Nó tựđộng chuyển đổi những lời gọi model object (đối tượng mô hình) thànhnhững câu SQL tối ưu cho cơ sở dữ liệu hiện tại

Điều này đồng nghĩa với việc chuyển đổi sang hệ cơ sở dữ liệukhác khi đã đi một nửa dự án trở nên dễ dàng Hãy tưởng tượng rằngchúng ta đang viết 1 phiên bản prototype cho một ứng dụng nhưng kháchhàng chưa quyết định hệ cơ sở dữ liệu nào phù hợp với yêu cầu của họ.Chúng ta có thể bắt đầu ứng dụng của bạn với SQL chẳng hạn, và chuyểnđổi sang MySQL, PostgreSQL hay Oracle khi nào khách hàng có quyếtđịnh Chỉ cần thay đổi 1 dòng trong file cấu hình và mọi thứ vẫn hoạtđộng

Một lớp trừu tượng thu gọn logic dữ liệu Phần còn lại của ứngdụng không cần phải biết về các câu truy vấn SQL, và phần SQL truyxuất dữ liệu là dễ viết Những lập trình viên chuyên lập trình cơ sở dữliệu cũng biết một cách rõ ràng cần phải làm gì

Việc sử dụng đối tượng thay cho bản ghi (record) và class thay chotable còn có một lợi ích khác: chúng ta có thể thêm các bộ truy xuất kháccho các table của bạn Ví dụ nếu bạn có 1 table Client với 2 field làFirstName và LastName, chúng ta có thể cần Name Trong thế giớihướng đối tượng, điều này được thực hiện dễ dàng bằng cách thêmphương thức truy xuất cho class Client như sau:

Trang 14

Tất cả những hàm truy xuất dữ liệu lặp lại và logic nghiệp vụ của

dữ liệu có thể được bảo trì trong các object này Ví dụ có một classShoppingCart (giỏ hàng) có chứa các item (cũng là đối tượng) Để lấytổng số tiền của giỏ hàng, bạn có thể thêm phương thức `getTotal()` nhưsau:

PHP Code:

public function getTotal() { $total = 0;

foreach ($this->getItems() as $item)

{ $total += $item->getPrice() * $item->getQuantity();

3.6.5 Rapid Application Development (RAD)

Việc lập trình những ứng dụng web là công việc chán ngắt vàchậm Theo những chu kì công nghệ phần mềm thông dụng (ví dụ giốngnhư một để nghị được đưa ra bởi Rational Unified Process), việc pháttriển ứng dụng web không thể bắt đầu trước khi 1 tập hợp đầy đủ các yêucầu được viết ra, nhiều biểu đồ UML được kéo dài và hàng tấn tài liệu sơ

bộ được đưa sản xuất.Điều này được thừa hưởng từ nhiều nhà pháttriển,sự thiếu tính linh hoạt của những ngôn ngữ lập trình( bạn build,compile, restart, và người biết cái gì khác nữa trước sự chứng kiếnchương trình của bạn chạy), tất cả những điều đó, tổng hợp lại thành mộtviệc đó là các khách hàng có lí lẽ khá là chính đáng và không thay đổisuy nghĩ của họ

Trang 15

Ngày nay, việc kinh doanh phát triển rất nhanh, và những kháchhàng hướng tới thay đổi suy nghĩ của họ trong tiến trình phát triểnproject Tất nhiên, họ mong chờ nhóm development tra lắp những cái họcần và sữa lại cấu trúc của một ứng dụng một cách nhanh chóng Thậtmay mắn, việc sử dụng mã ngôn ngữ giống như Perl và PHP tạo ra nó ápdụng một cách dễ dàng cho những chiến lược lập trình, như là RAD, hayphát triển phần mềm nhanh chóng.

Một trong những tư tưởng của phương pháp học là bắt đầu pháttriển sớm nhất có thể để khách hàng có thể xem trước mẫu quá trình làmviệc và đưa ra sự bổ sung trực tiếp Sau đó ứng dụng được bắt đầu xâydựng theo quá trình lặp lại, công bố version với những tính năng mớitrong chu trình phát triển ngắn

Kết quả cho developer là rất nhiều Một developer không cần suynghĩ về tương lai trong quá trình tiếp theo Phương thức sử dụng đơn giản

và cởi mở có thể làm được Câu danh ngôn của KISS minh họa :Giữ sựđơn giản và ngớ ngẫn

Khi sự yêu cầu mở ra hay khi một tính năng được thêm vào,codehiện tại thường là một phần của bản viết lại Quá trình xử lý được gọi làrefactoring, và các vấn đề xảy ra rất nhiều trong tiến trình phát triển Web

Code được move những nơi khác tùy theo tính chất của nó Cácphần lặp lại của code được refactored đến một nơi khác, như vậy yếu tốcốt lõi là: Không lặp lại (DRY)

Và tạo sự chắc chắn rằng ứng dụng chạy bình thường khi nó thayđổi, nó cần test một cách đầy đủ rằng có thể tự động Nếu được viết tốt,các unit test là cách vững chắc để chắc chắn không có sự hỏng hóc nàokhi thêm code hay refactoring code Một vài phương pháp developmentđều quy định viết test trước khi coding đó gọi là test-driven development(TDD)

Mảng PHP này có thể tự động được tạo bằng cách phân tích chuỗiYAML sau: NOTE Nhiều nguyên tắc cơ bản khác và thói quen tốt liênkết lại cho quá trình phát triển nhanh chóng Một trong những quá trình

Trang 16

phát triển có hiệu quả được gọi là Extreme Programing (viết gọn lại làXP), và tài liệu về XP sẽ dạy cho bạn nhiều về cách phát triển ứng dụngnhanh chóng và một cách có hiệu quả Một sự bắt đầu tốt với seri sáchviết bởi Kent beck (Addsison-Wesley) Symfony là công cụ tuyệt vời choRAD Một vấn đề của thực tế, framework được xây dựng bởi một webagency applying nguyên tắc RAD cho project của riêng mình Điều này

có nghĩa là học sử dụng symfony không phải học một ngôn ngữ mới, mà

là áp dụng sự phản xạ và ý kiến tốt nhất để xây dựng những ứng dụngtheo cách hiệu quả hơn Website dự án symfony đưa ra từng bước hướngdẫn, minh họa về sự phát triển của một ứng dụng bằng 1 cách nhanhchóng Nó được gọi là askeet (http://www.symfony-project.com/askeet),

và được giới thiệu cho những người cần học nhiều về cách lập trìnhnhanh chóng

3.6.6 YAML

Theo website chính thức của YAML (http://www.yaml.org/),YAML là "1 định dạng tuần tự dữ liệu có thể phân tích bằng máy đơngiản được thiết kế để con người có thể đọc và tương tác với những ngônngữ kịch bản" Nói cách khác, YAML là ngôn ngữ rất đơn giản đượcdùng để mô tả dữ liệu theo kiểu tựa XML nhưng với cú pháp đơn giảnhơn Nó đặc biệt hữu dụng để mô tả dữ liệu có thể được chuyển sang cácmảng hoặc hash (bảng băm), giống như sau:

PHP Code:

$house = array( 'family' => array( 'name' => 'Doe' ,

'parents' => array( 'John' , 'Jane' ), 'children' => array( 'Paul' , 'M ark' , 'Simone' ) ), 'address' => array( 'number' => 34 , 'street' => 'Main Street' , 'city'

Trang 17

cú pháp tốc ký để mô tả cấu trúc tương tự với ít dòng hơn, đó là mảngđược thể hiện trong cặp dấu [] và hash trong cặp dấu {} Vì vậy, dữ liệuYAML trên có thể được viết thành với cách ngắn hơn như sau:

là lý do tại sao symfony sử dụng YAML như là một ngôn ngữ ưu tiên đểlưu trữ thông tin cấu hình Bạn sẽ thấy nhiều file YAML trong cuốn sáchnày, nhưng thật ra bạn không cần học nhiều về nó

3.6.7 Mô hình MVC

Nếu chúng ta đã từng phát triển một website bằng PHP mà khôngdùng framework, thường với mỗi trang HTML bạn sẽ dùng một file PHP.File PHP này sẽ chứa nhiều kiểu cấu trúc: các cấu hình khởi tạo và toàncục, business logic liên quan đến yêu cầu của trang, lấy các dữ liệu từdatabase, và cuối cùng tạo mã HTML để hiển thị

Trang 18

Chúng ta có thể sử dụng một templating engine để tách phần logic

và HTML Tất nhiên, chúng ta cũng có thể sử dụng một databaseabstraction layer để tách phần thao tác với model ra khỏi business logic.Nhưng thường bạn sẽ tạo ra rất nhiều code mà việc maintain trở thànhcơn ác mộng Có thể chúng ta sẽ xây dựng ứng dụng rất nhanh, nhưngthật khó để thay đổi, nâng cấp, đặc biệt khi không có ai ngoại trừ chúng

ta hiểu được cách nó làm việc

Có một giải pháp tuyệt vời để giải quyết những vấn đề trên Đốivới việc phát triển web , giải pháp thường dùng là tổ chức code theo

MVC design pattern Pattern này chia code thành ba tầng:

Mode l bao gồm business logic (database nằm ở tầng này) Bạn

đã thấy rằng symfony chứa tất cả các class và file liên quan đếnModel trong thư mục lib/model

View là những gì tương tác với người dùng (template engine làmột phần của tầng này) Trong symfony, tầng View được tạobởi PHP templates Các file này nằm trong các thư mụctemplates khác nhau mà chúng ta sẽ thấy ở các phần sau trongngày hôm nay

Controller thực hiện việc lấy dữ liệu từ Model và chuyển cho

View để hiển thị ở client Khi chúng ta cài symfony trong ngàyđầu tiên, chúng ta đã thấy rằng mọi yêu cầu được điều khiển bởifile front controllers (index.php và frontend_dev.php) Những

file front controllers này sẽ tìm actions tương ứng để thực hiện

yêu cầu đó Như chúng ta thấy hôm qua, các action được nhóm

lại trong module.

Ngày đăng: 09/03/2017, 07:54

TỪ KHÓA LIÊN QUAN

w