��2��@Zend Framework�̊e�R���|�[�l���g����C�ɐ������F�uZend Framework�v�ʼn�������PHP�J���i1/3 �y�[�W�j

�O��́AZend Framework�̊T�v�Ƃ��̓������@�ɂ‚��Đ������܂����B����́A�e�R���|�[�l���g�̎g�p���@�ɂ‚��ďЉ�Ă����܂��B

» 2007�N03��05�� 08��00�� ���J
[���c���ƁCITmedia]

�@��1��ƂȂ�O���ł́AZend Framework�̊T�v�����������AZend Framework�̓������@�ɂ‚��Đ������܂����B����́A�e�R���|�[�l���g�̎g�p���@�ɂ‚��ďЉ�Ă����܂��B

�e�R���|�[�l���g�̖����Ǝg�p�@

�@���āA�����܂ł�Zend Framework��MVC���f�����g�p���鏀���͐����܂����B��������́A�e�R���|�[�l���g�̎g�p���@��������܂����A���̑O��Zend Framework��Front Controller�̓����������x�܂Ƃ߂Ă����܂��傤�i�}1�j�B�܂��A�u���E�U�Ŏw�肳���URL��mod_rewrite�̋@�\�ɂ����index.php�̃A�N�Z�X��rewrite����܂��Bindex.php�ł�Zend_Controller_Front�N���X��ǂݍ��݁A���̃N���X��Router�ƂȂ�N���X��Dispatcher�ƂȂ�N���X�֐U�蕪���܂��B�w�肳�ꂽURL�́ARouter�ɂ���āu�ǂ�Action Controller�̂ǂ�Action���Ăяo���v�Ƃ������ɉ��߂���āAZend_Controller_Dispatcher_Token�ɂ܂Ƃ߂��܂��B�����Dispatcher���󂯎��A�Y����Action�֐��䂪�ڂ�܂��B

}1 �}1�@Front Controller�̓���

�@���p�҂��Ǝ��ɏ����Ȃ���΂Ȃ�Ȃ��\�[�X�R�[�h�͎���4��ނł��B

  1. index.php�F�ǂ�Router���g�p���邩��ݒ肷��
  2. Action Controller�F�e�R���g���[���[��Action���\�b�h���`����
  3. View�N���X�F�u���E�U��ʂɕ\�������ۂ̃��C�A�E�g�⃍�W�b�N���`����
  4. Model�N���X�F�f�[�^�x�[�X�A�N�Z�X�⃍�W�b�N���������郂�f���w���`����

index.php�F�ǂ�Router���g�p���邩��ݒ肷��

�@Zend Framework�ɂ�Preview 0.1.5�����[�X�̎��_��2�‚�Router�����݂��A�ǂ����I�Ԃ���index.php�̏��������ς���Ă��܂��B

�ȒP�Ɏg�p�ł��邪���R�x�̒ႢZend_Controller_Router�N���X

�@�f�t�H���g�ł�Zend_Controller_Router�N���X���g�p����܂��BZend_Controller_Router�N���X�́A�ȒP�Ɏg�p�ł��ēƎ��ɋL�q����R�[�h���ŏ����ōς݂܂��i���X�g1�j�B�������A���[�e�B���O��`���Œ肳��Ă���A�}2�̂悤��URL�̎w����@���Œ肳��Ă��܂��܂��B


require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run�i'./application/controllers'�j;

���X�g1�@Zend_Controller_Router�N���X���g���Ƃ���index.php
}2 �}2�@Zend_Controller_Router�N���X��URL�w����@

�@���ɂ‚���L�[�́AAction���\�b�h���ŕϐ��Ƃ��Ď擾�ł��܂��B����URL�̉��߂ŕ�����Ƃ���AZend_Controller_Router�N���X���g�p����ꍇ�́ADocumentRoot��index.php���z�u����Ă���K�v������܂��B���̂��߁A1�‚�Web�T�[�o��Zend Framework���g�p���������̃A�v���P�[�V�������z�X�g�������ꍇ�́AVirtual Host��ݒ肵�ăA�v���P�[�V�������ƂɃz�X�g���̂�p�ӂ���K�v������܂��B

�_��ɗ��p�ł��邪�R�[�f�B���O�ʂ̑�����Zend_Controller_RewriteRouter�N���X

�@����1�‚�Router�Ƃ���Zend_Controller_RewriteRouter�N���X���p�ӂ���Ă��܂��B�������Router�͎��R�Ƀ��[�e�B���O������`�ł��锼�ʁA�R�[�f�B���O�ʂ������܂��B�@�Ⴆ�΁AZend_Controller_Router�N���X�Ɠ��l�̃��[�e�B���O���������ꍇ�A���X�g2�̂悤�ɋL�q���܂��BZend_Controller_RewriteRouter�ł́A��`���������[�g���Ƃ�addRoute���\�b�h���g�p���Đݒ肵�A���X�g2�́u:controller/:action�v�̃��[�g��ݒ肵�Ă��܂��B�擪�Ɂu:�v���‚��邱�Ƃŕϐ��Ƃ��ĉ��߂���܂����A�u:controller�v�Ɓu:action�v�͗\���Ƃ��Ē�`����Ă���A���̂܂�Action Controller��Action���\�b�h�̖��̂Ƃ��ĉ��߂���܂��B


require_once 'Zend/Controller/Front.php';
require_once 'Zend/Controller/RewriteRouter.php';

$router = new Zend_Controller_RewriteRouter�i�j; $router->setRewriteBase�i"C:\www\blog"�j; $router->addRoute�i'user', ':controller/:action', array�i'controller' => 'Main', 'action' => 'Index'�j�j;
$ctrl = Zend_Controller_Front::getInstance�i�j; $ctrl->setRouter�i$router�j; $ctrl->setControllerDirectory�i'./application/controllers'�j->dispatch�i�j;
���X�g2�@Zend_Controller_RewriteRouter�N���X���g���Ƃ���index.php

�@�܂��A���X�g2�ł�setRewriteBase�ɂ���ă��[�g�f�B���N�g�����w��*���Ă��܂��i�f�t�H���g�Ń��[�g�f�B���N�g�������m���邽�߂��̎w��͕K�{�ł͂���܂���j�B���ӂ��ׂ��_�Ƃ��ẮAZend_Controller_Router�N���X�̂悤�ɁA�L�[�����ɂ‚Ȃ��郋�[�e�B���O�̓T�|�[�g����Ă��Ȃ����Ƃł��B���̂��߁AZend_Controller_Router�N���X���g�p�����A�v���P�[�V���������̂܂�Zend_Controller_RewriteRouter�N���X�ֈڍs���邱�Ƃ͂ł��܂���B����ł́A�p�r�ɉ����Ďg��������̂��ǂ��ł��傤�B

���̃y�[�W�ŏo�Ă������p��

setRewriteBase�ɂ���ă��[�g�f�B���N�g�����w��

�f�B���N�g�����ړ�����ꍇ�̈ˑ����ƂȂ邽�߁A���̃��\�b�h�͎w�肵�Ȃ��悤�ɐ�������Ă���B


�@�@�@�@�@�@ 1|2|3 ���̃y�[�W��

Copyright © ITmedia, Inc. All Rights Reserved.

'; e_dlv.innerHTML = html; adRequest({position:dlv_pos,dom:true}); }else if(ad_type === 'gam'){ var html = '
'; e_dlv.innerHTML = html; refreshGam('InArtSpecialLink'); }else if(ad_type === 'logly'){ var html = '
'; e_dlv.innerHTML = html; loglySet(g_id); }else if(ad_type === 'google'){ var html = '
'; e_dlv.innerHTML = html; googletag.cmd.push(function(){ var slot8 = googletag.defineSlot('/43042345/nlab_artinsert_RT',[[336,280],[300,250],'fluid'],'div-gpt-ad-1551176482959-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); googletag.display('div-gpt-ad-1551176482959-0'); googletag.pubads().refresh([slot8]); }); } }; var insert_ok = function(_target,_str){ var clearfix = d.createElement('div'); clearfix.className = 'colBoxClear'; if(ad_float_fix){ e_body.insertBefore(e_dlv,_target); e_body.insertBefore(clearfix,_target.nextElementSibling); }else{ e_body.insertBefore(e_dlv,_target); } set_dlv(); }; var insert_ng = function(_str){ e_dlv.style.display = 'none'; }; var main = function(){ var e_nodes = e_body.childNodes; // BODY �����q�v�f var e_tags = []; // BODY �����^�O var p_num = []; // BODY ���� P �^�O�ʒu var p_target_num; // �g�}����ʒu var o_float = {}; // ��荞�ݗv�f var o_this = {}; // �A�N�e�B�u�^�O var o_next = {}; // �A�N�e�B�u�^�O�̎��̃^�O var flag_insert = 0; // �}���t���O // ��荞�ݗv�f�`�F�b�N var check_float = function(_e){ var e = 0; if(_e.id.match(/^col\d{3}(l|r)$/)){ e = _e; } return e; }; // �v�f�� Y ���W�ƍ����̍��v�l var get_element_y = function(_e){ var ey = 0; var eh = _e.offsetHeight; while(_e){ ey += _e.offsetTop; _e = _e.offsetParent; } return ey + eh; }; var check_ptag = function(_e){ var e = 0; if(_e.tagName && _e.tagName === 'P'){ e = _e; } return e; }; var try_insert = function(){ p_target_num = Math.floor(p_num.length / 2) - 1; if(p_target_num >= _maxrange) p_target_num = _maxrange; if(dis_con) p_target_num = 0; for(var i = p_num[p_target_num]; i < e_tags.length; i++){ o_this.e = check_ptag(e_tags[i]); if(o_this.e){ o_next.e = check_ptag(e_tags[i + 1]); if(o_next.e){ if(!o_float.e || check_float(e_tags[i - 1])){ o_float.e = check_float(e_tags[i - 1]); o_float.n = i - 1; } if(o_float.e && o_float.n < i + 1){ o_float.y = get_element_y(o_float.e); o_this.y = get_element_y(o_this.e); set_line(o_float.y,'red'); set_line(o_this.y,'blue'); if(o_float.y < o_this.y){ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂���'); break; } }else{ flag_insert = 1; insert_ok(o_next.e,_threshold + ' �p���ȏ��荞�݂Ȃ�'); break; } } }else{ o_float = {}; } } if(!flag_insert){ insert_ng('�}���ʒu�Ȃ�'); } }; // �S�q�v�f����^�O�̂ݔz��ɓ���� for(var i = 0; i < e_nodes.length; i++){ if(e_nodes[i].tagName){ e_tags.push(e_nodes[i]); } } // �S�^�O���� P �^�O�ʒu��z��ɓ���� for(var i = 0; i < e_tags.length; i++){ if(e_tags[i].tagName === 'P') p_num.push(i); // �ŏ��̉�荞�ݗv�f���i�[ if(!o_float.e){ o_float.e = check_float(e_tags[i]); o_float.y = get_element_y(o_float.e); o_float.n = i; } } if(p_num.length >= _threshold){ try_insert(); }else{ insert_ng('P �^�O ' + _threshold + ' �ȉ�'); } }; if(e_body){ main(); }else{ insert_ng('�L���{���Ȃ�'); } })(document,4,5);

���ڂ̃e�[�}

���Ȃ��ɂ������߂̋L��PR