Thứ Năm, 11 tháng 6, 2015

Kiến trúc cổ điển hải Sơn

Là một trong hai mẫu phong cách trong thiết kế kiến trúc nổi bật nhất, phong cách kiến trúc cổ điển mang đến cảm giác sự điềm tĩnh, thanh bình và yên tịnh trái ngược với phong cách kiến trúc hiện đại. Thật vậy, chỉ mới thoáng qua một vài họa tiết, kiểu dáng của một công trình kiến trúc cổ điển, người ta có thể tạm hình dung được một gia chủ có phần lịch thiệp và sang trọng. Những đường nét hoa văn từ các loại sơn giả đá cổ điển, hoa văn thạch cao cổ điển, trần cổ điển…tất cả đều gợi lên một sự tinh tế, đơn giản nhưng lại mê hoặc một cách lạ lùng.
Là tiên phong trong việc theo đuổi và xây dựng một nhánh riêng biệt trong xây dựng và thi công cho các công trình phong cách kiến trúc cổ điển, công ty Hải Sơn chúng tôi hiểu rằng giá trị của các công trình phong cách kiến trúc này không phải nằm ở màu sắc, vật dụng trang trí mà nằm ở cái hồn mà mọi người bao gồm cả gia chủ và đội ngũ nhân viên của chúng tôi tạo nên. Nói một cách nôm na dễ hiểu là làm những công trình kiến cổ điển này phải có lòng, có đam mê thì công trình mới thật sự thành công. Hiểu được điều này, vì vậy, đội ngũ nhân viên của chuyên lĩnh vực này được tuyển chọn rất gắt gao và khó khăn. Chúng tôi đặt tính cách và chuyên môn ngang hàng và song hành với nhau, nghĩa là ngoài việc bắt buộc ứng viên có chuyên môn liên quan đến phong cách kiến trúc cổ điển thì cũng phải là người có tính cách điềm đạm và tinh tế, và hơn hết phải có tình yêu với phong cách kiến trúc này.
Đến với Hải Sơn, quý khách sẽ được trải nghiệm hoàn toàn mới lạ, từ khâu dịch vụ, tư vấn cho tới thi công, đâu đâu cũng có thể cảm thấy phong cách kiến trúc cổ điển, ngay cả khí thái con người của nhân viên mà quý khách tiếp xúc. Quý khách sẽ được tư vấn hết sực tận tình về những ưu nhược điểm của loại công trình kiến trúc này và được tận mắt thấy được công trường thi công như thế nào nếu quý khách có nhu cầu tham quan.


Thứ Hai, 5 tháng 1, 2015

Zend_View

 Zend_View

-         Ở phần trước, chúng ta echo dữ liệu trong controller để kiểm tra xem project đã cấu hình đúng chưa,tuy nhiên việc làm này không đúng với tinh thần MVC, theo MVC, controller không được phép echo dữ liệu.Vậy chúng ta sẽ truyền các dữ liệu từ controller ra view và cho hiển thị tại view.
-         Các quy ước tạo thư mục và file tại view:
o  Ứng với mỗi controller sẽ tạo một thư mục trong thư mục view cùng tên với tên controller.
o  Ứng với mỗi action tạo một file *.phtml cùng tên với action.
-         Nguyên tắc khi một action của controller được gọi, Zend sẽ vào thư mục mang tên controller đó trong view và gọi file *.phtml mang tên action được gọi.Tại đây dữ liệu trên qua từ action sẽ được hiển thị ra màn hình.
-         Một số thủ tục trong action controller:
o   Truyền biến là chuỗi:
$this->view->ten_bien="giá trị";
o   Truyền mảng:
$arr = array("họ"=>''Ngô'',"tên"=>"Trung");
$this->view->ten_bien_mang = $arr;
-         Tại view của từng action ta echo dữ liệu ra:
o   Biến là chuỗi/số
echo $this->ten_bien;
o   Biến là mảng
foreach($this->ten_mang as $value){
echo $value;
}
-         Tại function init của controller
o   Chèn css
$this->view->headLink()->appendStylesheet("đường dẫn tới file css");
Từ file css thứ 2 trở đi
$this->view->headLink()->offsetSetStylesheet("thứ tự file","đường dẫn tới file css");
o   Chèn file javascript
$this->view->headScript()->appendFile( "đường dẫn tới file script");
Từ file thứ 2 trở đi:
$this->view->headScript()->offsetSetFile("thứ tự","đường dẫn tới file script");
o   Chèn thẻ meta
$this->view->headMeta()->appendHttpEquiv('Content-Type','text/html; charset=UTF-8');
-          Để sử dụng các file javascript, css, meta trong 1 file view. Ta chỉ cần mở file cần chèn thêm các dòng lệnh sau:
echo $this->headlink();//chèn css
echo $this->headScript();//chèn javascript

echo $this->headMeta();chèn thẻ meta

Zend Controller

1.      Zend_Controller

Là một trong ba bộ phận cấu thành của MVC, controller có nhiệm vụ nhận các request từ client,điều hướng theo yêu cầu của request. Dựa vào request, controller gọi các phương thức của các class trong model, sau khi nhận dữ liệu trả về nó sẽ chuyển các dữ liệu ra view để hiển thị ra màn hình.
1.1.  Controller và Action
-         Mô hình không module chúng ta có cấu trúc thư mục application như sau:

-         Các controller sẽ nằm trong thư mục controllers,controller mặc định viếng thăm một link là IndexController, nghĩa là khi ta gõ link http://ten_project/public/index.php/ thì mặc định Zend sẽ gọi controller index.
-         Mỗi controller sẽ là một class,tên class là tên controller và class này kế thừa lớp Zend_Controller_Action
class IndexController extends Zend_Controller_Action
{
      //danh sách các actioncontroller
}
-         Khi ta vừa tạo một actioncontroller thì tương ứng với nó trong thư mục views sẽ có 1 file ‘.phtml’ với tên tương ứng với actioncontroller.
-         Bên trong controller là các action, đường dẫn tới action chính là link mà chúng ta gõ trên thanh địa chỉ của trình duyệt.Mỗi action là một hàm của class, cú pháp của hàm như sau:<ten_action>Action.
public function <tên action>Action()
    {
        // action body
    }
1.2.  Khái niệm font controller
-         Front Controller giống như bộ định tuyến router có nhiệm vụ đọc các thông số cấu hình ban đầu và điều hướng sang controller và action tướng ứng với request của client.
-         Chúng ta có thể can thiệp vào nó bằng 2 cách :Viết trong application.ini hoặc bằng code php.
Trong file application.ini
-         Chỉ ra thư mục controller trong ứng dụng không module
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
-         Chỉ ra thư mục modules trong ứng dụng multimodules
resources.frontController.controllerDirectory = APPLICATION_PATH "/modules"
-         Đặt module,controller,action mặc định
resources.frontController.defaultModule="TENMODULE"
resources.frontController.defaultControllerName="TENCONTROLLER"
resources.frontController.defaultAction="TENACTION"
-         Đặt base url
resources.frontController.baseUrl = "http://localhost
-         Tại bootstrap viết hàm _initApplication và bổ sung các dòng sau:
$font= Zend_Controller_Font::getInstance();
-         Chỉ ra thư mục chứa modules
$font->addModuleDirectory(APPLICATION_PATH."/modules");
-         Chỉ ra controller mặc định
$font->setDefaultControllerName("index");
-         Chỉ ra action mặc định
$font->setDefaultAction("listall");
Ngoài ra các tham số được truyền đi cũng được font controller đăng kí, việc lấy tham số sẽ thông qua font controller.Ta có các cách lấy tham số sau:
-         Lấy 1 tham số:   $this->_request_getParam("tenthamso");
-         Lấy toàn bộ tham số :$this->_request_getParams();
-         Thay dổi giá trị tham số:$this->_request_setParams();
-          Xóa toàn bộ tham số:$this->_request_clearParams();
-         Lấy toàn bộ tham số theo phương thức Post :
                                   $this->_request_getPost("ten the input");

Thứ Sáu, 26 tháng 12, 2014

Mô hình MVC trong Zend Framework


-         Mô hình MVC (Model-View-Controller) chia ứng dụng thành 3 phần, mỗi phần có chức nắng khác nhau, mang lại sự thuận tiện khi có nhu cầu nâng cấp, bảo trì.
-         Mô hình MVC trong ZF gồm 4 thành phần chính: Front Controller, Controller Action, Model và View.
a.      Front Controller:
-         Cần 2 file trong thư mục public để hoạt động: index.php và .htaccess.
-         Đặt trước mô hình MVC – bootrap file.
-         Tất cả các request đều phải đi qua file bootrap là index.php.
-         Xử lý lỗi khi có 1 request không thành công.
-         Front Controller có chức năng khởi tạo ứng dụng :
 Khởi tạo đối tượng request và response:
Thực hiện một số chức năng khác nhau như: Thêm đường dẫn vào ứng dụng, cấu hình cho ứng dụng, bố trí các thành phần của MVC, Logging, kết nối database, đăng kí các biến toàn cục,…
Biến đổi URL sang đôi tượng request trong ZF, phân tích URL thành các module, controller, action để lưu vào các đối tượng request. URL của ứng dụng trên ZF có dạng mặt định như sau:

Định hướng request đến file chứa controller action tương ứng: dựa vào đối tượng request, Front Controller sẽ mapping request đến một action method trong một lớp controller cụ thể.
b.      Controller Action:
-         Đóng vai trò là thành phần controller trong mô hình MVC. Có nhiệm vụ thực hiện các luồng công việc, xử lý các yêu cầu của ứng dụng, kết hợp View và Model.
-         Trong ZF mỗi controller được định nghĩa bằng một lớp, lớp này phải được kế thừa từ lớp Zend_Controller_Action. Mỗi lớp sẽ nhận nhiệm vụ xử lí một hoặc nhiều request tùy thuộc vào số action method bên trong nó. Quy tắc đặt tên của lớp controller mycontrollerController.php
-         Những action method trong lớp controller sẽ xử lý riêng từng request. Mỗ request từ client sẽ do 1 action method trong controller thụ lý. Quy tắt đặt tên action Method: myactionAction().
c.      Model:
-         Có nhiệm vụ truy vấn cơ sở dữ liệu hoặc dung để định nghĩa các kiểu dữ liệu phức tạp.
-         Trong ZF phần này thường dùng để chứa các lớp tương ứng với các bảng trong mô hình cơ sở dữ liệu quan hệ hoặc dùng để chứa các lớp do người dùng định nghĩa được sử dụng nhiều lần trong ứng dụng.
-      Nếu là các lớp dùng để kết nối cơ sở dữ liệu thì thường được extends từ lớp Zend_Db_Table hoặc Zend_Db_Table_Astract.
-      Nếu là các lớp dùng để định nghĩa các kiểu dữ liệu phức tạp cho ứng dụng thì chỉ là những lớp do người dùng tự viết theo phương pháp lập trình hướng đối tượng của PHP hoặc extend từ bất kì lớp nào của ZF, ví dụ như Zend_Form.
d.      View:
-      Là phần tạo ra giao diện người dùng, thể hiện các dữ liệu của ứng dụng ra màn hình, xuất các kết quả đã được xử lý bởi Controller.
-      Một action method trong lớp Controller không nhất thiết phải có phần View nếu nó không cần phải trả về kết quả cho người dùng và một action method cũng có thể nhiều View điều này cần thiết bởi vì ta có thể chọn phần View phù hợp cho từng đối tượng.
-      Trong ZF file View của mỗi action chỉ đơn giản là file php thông thường và các giá trị sau khi xử lý trong Controller action cũng được truyền qua file php này và viêc truy cập vào các biến chỉ thông qua biến $this.

Thứ Tư, 24 tháng 12, 2014

TỔNG QUAN VỀ ZEND FRAMEWORK

1.      Giới thiệu

-   Năm 2005, Andi Gutmans của Zend Technologies đã công bố Zend’s PHP Collaboration Project, và giới thiệu về Zend Framework.
-   Phiên bản 1.0 được phát hành vào 7/2007 và các phiên bản mới được ra đời thường xuyên sau đó. Phiên bản mới nhật hiện nay là 1.11 .
-   ZF là một framework mã nguồn mở được dung để phát triển ứng dụng web và service trên nền PHP.
-   Là một framework 100% hướng đối tượng.
Vì sao nên sử dụng ZF:
-  Thư viện Zend Framework rất đầy đủ và phong phú. Khi nghiêm cứu và làm   việc với Zend Framework chúng ta sẽ có rất nhiều kiến thức mới.
- Zend Framework được xây dựng trên nền tảng lập trình hướng dối tượng nên có thể kế thừa, nâng cấp các ứng dụng dễ dàng.
- Những thành viên phát triển Zend Framework là những chuyên gia nổi tiếng về mã nguồn mở và PHP trên thế giới.
- ZF sử dụng những design pattern hiện đại, hổ trợ tối đa tính linh hoạt.
- Kiến trúc MVC của ZF đảm bảo cho website được tổ chức một cách tốt nhất, thuận tiện khi phải sữa đổi, bảo trì, nâng cấp.
- Tích hợp các thư viện, các thành phần khác một cách linh hoạt và nhanh chóng.
- Tài liệu của ZF tại framework.zend.com rất đầy đủ và chi tiết.
- Bảo mật của ứng dụng rất tốt nên tránh được các lỗi thường gặp của PHP thuần.
   - Nhu cầu tuyển lập trình viên Zend Framework ngày càng nhiều.

2.      Cơ bản về các component trong Zend Framework.

Có thể chi component trong Zend Framework thành 6 nhóm chính:
Ø  MVC.
Ø  Authentication and access.
Ø  Internationalization.
Ø  Interapplication communication.
Ø  Web services.
Ø  Core.
a.   MVC component: Cung cấp đầy đủ các tính năng để xây dựng ứng dụng theo mô hình MVC, tách phần view ra khỏi phần xử lý. Bao gồm một số lớp như :         Zend_Application, Zend_Application_Bootstrap,
 Zend_Application_Resource,  Zend_Application_Module,…
Zend_Controller_Front, Zend_Controller_Action, Zend_Controller_Dispatch, Zend_Controller_Plugin, Zend_Controller_Router, …
Zend_Playout, Zend_View, Zend_View_Helper, …
b.   Authentication and access component: ZF hổ trợ người dung xây dựng web đảm bảo tính an toàn, bảo mật, quản lý và phân quyền user,… một cách nhanh chóng và đơn giản bằng các lớp như:
-      Zend_Acl: phân quyền user sử dụng các resource.
-      Zend_Auth: chứng thực user.
-      Zend_Session,...
c.   Internationalization component: ZF cho phép ta có thể xấy dựng ứng dụng bằng nhiều ngôn ngữ, địa phương hóa ứng dụng phù hợp với người dùng ở từng khu vực như ngày giờ, đơn vị tiền, ngôn ngữ,… Các lớp ZF hổ trợ chức năng trên:
Zend_Date, Zend_Curency, Zend_Locale, Zend_Translate.
d.   Interapplication communication component: ZF cung cấp một component để đọc dữ liệu từ các trang web khác.
-      Zend_Http_Client :  thu thập dữ liệu từ website khác và các service và sau đó đưa về website của mình.
-      Khi cần giao tiếp với các ứng dụng khác qua giao thức HTTP, định dạng phổ biến nhất là: XML-RPC và SOAP, ZF cung cấp Zend_XmlRpc_Client dễ đang xử lý XML-RPC.
e.   Web services component: hiện nay trên website có rất nhiều các services do các hãng cung cấp như: StrikeIron, Microsoft, Yahoo, Amazon,… ZF cũng đã xây dựng các lớp để có thể sử dụng các service này: Zend_Service_Amazon, Zend_Service_Yahoo, Zend_Service,…
f.    Core Component:
-      Zend_Cache: giúp tăng tốc website đáng kể
-      Zend_Db: để kết nối database.

-      Zend_Search_Lucene: dựa trên Apache Lucene cho java và cung cấp hệ thống text-search mạnh mẽ để người phát triển có thể tạo ra một công cụ tìm kiếm cho website của mình.