MVC新手指南

1 view
Skip to first unread message

ningxibo

unread,
Apr 7, 2010, 8:48:30 PM4/7/10
to Linux编程
ģ��-��ͼ-��������MVC�������ǽ�����������Ȧ��������ἰ��ģʽ֮һ��Ŀǰ������Ӧ�ÿ���մ�ߵ����� ���Ϳ��������ĸ��д�Ĵ���϶����°ٴΡ� ���죬���ǽ���ϸ����һ��MVC�ĺ��壬�Լ�����������е�ԭ��

���ϵ���ʷ��

MVC����һ�����ģʽ��design pattern��������һ���ܹ�ģʽ��Architectural pattern������������Ӧ�ó���Ľṹ�Լ��ṹ�и����ֵ�ְ��ͽ�����ʽ��

����������1979���ʱ���һ�α������������ʱ������Щ��ͬ������Ӧ�õĸ����ڵ�ʱ�������ڡ���ķ������˹���������;�ʮ�����ڵ�ʱ�������� ��ά��WWW�������ӣ�����Զ�ĸı������硣Ŀǰ���������翪��������õ�����ģʽʵ������ԭ��ģʽ��һ���ı�档

���ּܹ�ģʽ�ķ�����������������������еĿ�����ܽ�����ģʽ���˽����������ǣ�Struts �� Ruby on Rails��������������ܸ��Ժ������ٿ�ܴ������������ӡ��


����Ӧ���е�MVCģʽ

ģ��-��ͼ-�������ܹ�ģʽ�����˼��dz��򵥣����ǵ�Ӧ�ó����б������������Щְ��

Ӧ�ó��򱻷ֳ��������Ҫ�IJ��֣�ÿ�����ָ����ƹܲ�ͬ���������������ǿ�����ϸ�Ľ����Լ�һ�����ӡ�

������

�������ƹ����û������󣨵��û����ͼ���û����棨GUI���ϵ�Ԫ��ִ�в���ʱ�����������յ�HTTP GET����POST���󣩡������Ҫ���ܾ��ǵ��ò�Э����Ҫ����Դ/������ִ���û�����ͨ����������Ϊ������ú��ʵ�ģ�ͣ��Լ�ѡ����ʵ���ͼ��

�


ģ����ָ���������֮�ϵ���ݹ����������ݣ���һ���Ӧ��Ӧ�ó�����Ҫ����Ķ��������ϵͳ�У��κ����ﶼ���Ա�����ɿ��Զ�����ij�ַ�ʽ���д���� ���ģ�͡�Ӧ�ó����е��û�����Ϣ�Լ�ͼ����ʲô������ֻ��һ�ѱ��밴�ն�Ӧ���������ݣ����ڲ�����δ�������ڣ������ʼ����ض��ĸ�ʽ�����ֵij��Ȳ� �ܳ�������ַ�ȵȣ�



ģ�͸�������ṩ��һ���û��������ݶ�Ӧ����ݱ�������Ϣ���飬��ᣩ����������������û�չʾ��������ģ�Ͷ�����䡣��Ҳ������Ϊʲô��������ѡ ��ʹ���ĸ���ͼ��չʾ��ݵ�ԭ��

ģ�Ͱ�����Ӧ�ó����߼�������Ҫ����ɲ��֣���Щ�߼�����������Ҫ������������С������������ǰ�Ӧ�ó���������ڲ���֯�߼�������ܼң���

��ͼ

��ͼ�ṩ��չʾģ����ݵIJ�ͬ��ʽ����������������ģ�塣��ͼ�����ж����������������ʹ���ĸ���ͼ��һ������Ӧ��ͨ��������������ģ�ͺ���ͼ�� �ɡ����������Ա�������һ���������������ڽ����û�����������Ȼ���ڵ����ض��Ŀ����������?ͬ�������

�����ǿ�һ������

���ڣ����裬�������ڿ���һ��������ꡣ�û����Խ������²������鿴ͼ�顣ע�ᣬ������ǰ���������Ʒ��������ɾ��ͼ�飨������й���ԱȨ�޵Ļ����� ���������ǿ������û����������롱�������鿴������������Щ��ʱ�ᷢ��ʲô�����

���ǻ���һ���ض��Ŀ�����������������ͼ����صIJ������鿴���༭�������Ȳ���������������У��ҰѸÿ���������Ϊ books_controller.php������Ҳ����һ��ģ�ͣ����� book_model.php����������ݺ����̵���ͼ����Ʒ��ص��߼���������ǻ���һЩ��ͼ��չʾ��ݣ�����ͼ���嵥��һ���༭ͼ���ҳ��ȵȡ�

�������ͼչʾ�����û������IJ鿴��������δ���ģ�



��������books_controller.php����HTTP GET����POST�ķ�ʽ���յ��û�������[1]������Ҳ������һ����������������index.php ����������Ȼ�����ٵ���ooks_controller.php��

��������������Լ���Ӧ�IJ���Ȼ�����ģ�ͣ�book_model.php��������ģ�ͷ��ػ������ͼ��[2]��ģ�͸������ݿ��е�ȡ��Ϣ [3]��������Ҫ����Լ�����˺��߼���Ȼ�󷵻�ͼ���б?

������ʹ��ǡ������ͼ������Щ���չʾ���û�[6-7]������û���ѡ�����ض�Ƥ������Ӧ����ͼ�ļ�Ҳ�ᱻѡ�ϵȵȡ�

MVC�ĺô���ʲô

����ʹ��MVC��һ�������Ժô���������ͼչʾ��Ӧ���߼�����ķ��뿪����

�Բ�ͬ�û��Լ���ͬ�豸���͵�֧��һֱ�ǵ��µ�һ���������⡣����̨ʽ���Ժ��ֻ��������õ�����ͼӦ���Dz���ͬ�ġ�ģ�ͻ᷵����ȫ��ͬ����ݣ����Dz�ͬ �ĵط��ǿ�������ѡ��ʹ�õ���ͼ�ļ���չʾ��ݣ����ǿ��԰������Dz�ͬ��ģ�壩��

���˽���ͼ��ҵ���߼��з��뿪�⣬MVC�ķ���Ҳ�����˴���Ӧ����Ƶ��Ѷȡ�����Ҳ��߽ṹ�ԣ����Ҳ������ά�������Ժ����á�

����ΪʲôҪ����أ�

����ʹ��һ�����ʱ��MVC�Ļ�ṹ�Ѿ��������У���ֻ�����Щ�ṹ�������䣬������ļ�����MVC��ģʽ���õ����ʵ�Ŀ¼��ȥ��������Ҳ�ṩ����� �ɲ��Ҿ�����ȫ���ԵĹ��ܡ�

��CakePHP��ΪMVC��ܵ����ӡ���һ����װ���Ժ���ᷢ����������Ҫ��Ŀ¼��

    * app/
    * cake/
    * vendors/

APP�ļ����Ƿ�����Ӧ�ó����ļ��ĵط��������㿪��Ӧ�ó���ĵط���

Cake�ļ�����Cakephp���ļ����λ���Լ������ĵط�����ܵ���Ҫ���ܾ������棩

Vendors�ļ����������������Ҫ�ĵ���PHP���ļ���λ�á�

��Ĺ����ļ���(APP�ļ���)����������Щ�ṹ��

    * app/
          config/
          controllers/
          locale/
          models/
          plugins/
          tests/
          tmp/
          vendors/
          o views/
          o webroot/

��������Ҫ����Ŀ��������õ�controllersĿ¼�£����ģ�ͷ��õ�modelsĿ¼�£�����ͼ�ļ�����viewsĿ¼�¡�

һ������Ϥ�˿�ܣ������������Ҫ�޸ĺʹ�������ʱ��֪��Ӧ�������ﶯ�֡������ļ���֯��ʽ��ά�������ϲ��١�

�Կ��Ϊ��

��Ϊ����̳̲�������������ʹ��CakePHP����һ��Ӧ�ó�������ֻ��������չʾһ��ģ�ͣ���ͼ�Ϳ���������ʾ���룬����ʹ��MVC������ĺô� ��һ�����ۡ���Щ���붼�Ǽ��˵ģ������ʺ�ʵ�ʵ�Ӧ�á�

����֮ǰ�Ѿ���һ��������꣬������һ��������û���鿴��������������ͼ����嵥������˵����������������Ȼ��Э���������IJ�����

��˵��û����ʱ�������������������ַ��

www.ourstore.com/books/list/fantasy

CakePHP ��URL��ַ��ʽ��/������/����/����1/����2.����IJ����ǿ������ڵ��õ����õĺ���֮ǰ�ϵ�url��ַ����

www.ourstore.com/books_controller.php?action=list&category=fantasy

������

ʹ��CakePHP��ܣ����ǵĿ���������������������

   <?php 
    
   class BooksController extends AppController { 
    
   function list($category) { 
  
   $this->set('books', $this->Book->findAllByCategory($category)); 
  
   } 
 
  function add() { ... ... } 
   
  function delete() { ... ... } 
 
  ... ... } ?>

�ܼ򵥣��ǰɡ�����������ᱻ����� books_controller.php����������/app/controllersĿ¼�¡����һ���б?list����������ִ�����������еIJ� ������Ҳ���԰�������ͼ����صIJ������������ͼ�飬ɾ����ͼ�飩

���Ϊ�����ṩ��������ݣ���������ͼ��ֻ��һ�д��롣�����ڻ�Ŀ�������Ϊ�ж������һ�����࣬�����Ѿ��̳��ˡ���AppController�̳� ��Controller�ģ�

��list�����У�������Ҫ���ľ��ǵ���ģ�ͻ�ȡ��ݣ�Ȼ��ѡ����ʵ���ͼ�ļ��������չʾ���û�������Ҫ���ǽ���һ�¹�̡�

this->Book�����ǵ�ģ�ͣ���������δ���

$this->Book->findAllByCategory($category)

�����ڸ���ģ�ͷ�����ѡ�����µ�ͼ���б�

�����Set����

$this->set('books', $this->Book->findAllByCategory($category));

�Ǹ��߿���������ݴ������ͼ����ģ�ͷ��ص������books�ı����������ͼ��Ȼ����ͼ�оͿ��Է��ʸñ����ˡ�

����������Ҫ��Ⱦ��ͼ���������ʹ��Ĭ����ͼ��CakePHP������Զ���ɡ��������Ҫʹ��������ͼ��������Ҫʹ��render��������������

�

ģ�ͷdz��򵥡�

   <?php 
  
   class Book extends AppModel {  
   
   } 
  
   ?>

Ϊʲô�ǿյģ���Ϊ��ӻ���̳���һЩ����Ĺ��ܣ�����ֻ����ѭCakePHP������淶��Ȼ���ܾͻ��Զ���������������顣���硣ͨ���� �֣�CakePHP֪���������BooksController��ʹ�õ�ģ�͡�Ȼ����Զ�������ݿ���һ����books����ݱ?

������壬���ǵ�bookģ�;;߱�����ݿ��ж�ȡ��ɾ��ͱ�����ݵ�������

��δ���Ӧ�ñ����books.php����������/app/models�ļ��¡�

��ͼ

����������Ҫ�����������Ϊlist��������һ����ͼ��������һ�����������ͼ��ʹ��HTML���룬���һ���һЩPHP����������ģ���ṩ�� books���顣

   <table> <tr> <th>Title</th> <th>Author</th> <th>Price</th> </tr> 
  
   <?php foreach ($books as $book): ?> <tr> <td> <?php echo $book['Book']['title']; ?> </td> <td> <?php echo $book['Book']['author']; ?> </td> <td> <?php echo $book['Book']['price']; ?> </td> </tr> <?php endforeach; ?> 
  
   </table>

�����Ѿ������ˣ���ͼ�ļ��������һ����ɵ�ҳ�棬��ֻ��һ��HTML���롣������ΪCakePHP�ṩ�˶���ҳ�沼�ֵķ���������ͼ��ᱻ���뵽���� �С��ڴ�����ЩHTMLƬ��ʱ�����Ҳ�ṩһЩ���֣�helper����������������ɳ�������񣨲���?�����ӣ�Ajax���� JavaScript��
���ǽ����Ĭ����ͼ����Ϊlist.ctp��list�Dz�������ƣ���ctp��ָcakeģ�壩��Ȼ��������� /app/views/books��(֮������booksĿ¼�£�����Ϊ����Book�������IJ���)��

������CakePHP�İ����£�����ֶ�����ˡ�

����

�����Ѿ�ѧϰ�˵�����õļܹ�ģʽMVC��������Ҫע�⣬�������ڱ�̽��ἰ��ģʽʱ������ָ���ǿ����������������������ܹ������ǻᷢ��ʵ��ʹ�� ������ǿ����Ľṹ�����䶯������Ϊ��Ҫ���ǣ�����ģʽ�����������Ϣ����ֳ�������ֵ�ְ�𣬱��ڳ���ά�������������Լ����ԡ�

�����Ѿ���ʶ��ʹ��MVC��ܵĺô�����������ṩ��һ�����MVC�Ǽܣ��Լ�������õĹ��ܣ���������ǵ�Ч�ʣ��ÿ�����̸�����ɡ�
09542302142050414.jpg
0954241603057103.jpg
0954242752920474.jpg
09542631491261046.jpg
Reply all
Reply to author
Forward
0 new messages