2012.03.27 PHPåå¼·ä¼@æ±äº¬ #58

2012.03.27 PHPåå¼·ä¼@æ±äº¬ #58
èºèºãè絡ãç¡ããstartã ã¾ãã¯installã gitã§å¼ã£å¼µã£ã¦ãããã®ã§å¤§å¤ã«ããã¡ãã好ã¿ã é©å½ãªãã£ã¬ã¯ããªã«ããã¦ããã¾ãããã clone git://github.com/mlively/Phake.git phakeä»åã¯ãphakeãã£ã¦ãã£ã¬ã¯ããªã«ãã¦ããããç´ ç´ã¨ããããã¯åç´ã ã¾ãã使ãããããã«ããã ã¤ã³ã¹ãã¼ã«ãã£ã¬ã¯ããªãä¸ã®srcã«ãã¹ãéã£ã¦ãå¿ è¦ãããã£ã½ãã®ã§ãæä½éãããããªæãã $dir = "./phake/src/"; set_include_path(get_include_path() . ':' . $dir); require_once('Phake.php');é¢åã ããdirã¯ç¸å¯¾ãã¹ã ãã©ãæ¬å½ã¯çµ¶å¯¾ãã¹ã®ã»ããããã¨æãã MagicWeaponã ã¨ãconfigã®lib_pathã«è¿½å ããæããããã ããã§
ååæºåãããPHPUnitãã®ãµã³ãã«ãããªãã¸ã§ã¯ãå¶æ¥½é¨ãã§ç´¹ä»ããã¦ãããè»çªããã®TDDã(PDF)ã¨ããè¨äºãåèã«ãTDD(Test Driven Development / ãã¹ãé§åéçº)ã¨ãã¢ããã°ã©ãã³ã°ã®æ¼ç¿è¨äºãPHPUnitã§ãªãã£ã¦ã¿ããæ®å¿µãªããèªå® ã§ç¬ãã§æ¸ããã®ã§ããã¢ããã®ãµã³ãã«ã«ã¯ãªããªããã ä½ãã®ã¯ã¹ã¿ãã¯ã¯ã©ã¹ã仿§ã¯â¦ isEmpty()ã§ã¹ã¿ãã¯ã空ã®å ´åãtrueããã以å¤false ãè¿ãã boolean isEmpty()size()ã§ã¹ã¿ãã¯ã®ãµã¤ãºãåå¾ããã int size()push()ã§å¼æ°ã®å¤ãã¹ã¿ãã¯ã®ä¸çªä¸ã«ç©ãã void push(int value)pop()ã§ã¹ã¿ãã¯ã®ä¸çªä¸ã®å¤ãåãé¤ãã void pop() ã¹ã¿ãã¯ã空ã®å ´åãjava.util.EmptyStackException ãçºçããt
# vendor/phake ã«ã¤ã³ã¹ãã¼ã« $ git clone https://github.com/jaz303/phake.git vendor/phake # app/bootsrap_test.php ãã¤ãã --------------------------------------------------------- <?php require_once __DIR__.'/bootstrap.php.cache'; require_once __DIR__.'/../vendor/phake/tests/bootstrap.php'; --------------------------------------------------------- # app/phpunit.xml.dist ã« bootstrap_test.php ãæå®ãã ---------
The document discusses unit testing and the PHPUnit testing framework. It provides an overview of what unit testing is, why it is useful, and how to get started with PHPUnit. Key points include that unit testing finds bugs early, encourages good coding practices, and makes codebases easier to change and deploy. PHPUnit is introduced as the most popular PHP testing framework. Instructions are given
src/Acme/DemoBundle/ ã«ãã¢ããããããããããã®ã½ã¼ã¹ãèªãã§ã¿ãã Twigé¢é£ã®è¨äºã ã»Twig - The flexible, fast, and secure template engine for PHP ã»ã¦ãã¦ã©ã by Zynga Japan: PHPãã³ãã¬ã¼ãã¨ã³ã¸ã³Twigãããã£ã¦ã¿ã¾ãã Symfony2ã¯require_onceãæ¸ããªããautoload.php ã«èªã¿è¾¼ããã£ã¬ã¯ããªãæ¸ãã ã»åçï¼ç¬¬4åSymfony2åå¼·ä¼ Symfony2ç³»ã®ãã³ãã«ã¯ãããã¦Symfony1ç³»ã§è¡¨ç¾ããã¨ã¢ããªã±ã¼ã·ã§ã³ã ãã©ãããããSymfony1ç³»ã¨æ¯è¼ããªããï¼å¥ç©ãªã®ã§ããï¼ â ãã£ã·ã¥ã®åé¤ ç¾ç¶ã1系㮠symfony cc ã®ãããªãã£ãã·ã¥ãåé¤ããã³ãã³ãã¯ãªãããã§ãã ãªã®ã§ãæåã§åé¤ãããããªãã¿ããã§ããrm
以åã®Symfonyåå¼·ä¼ã®æã«ã¦ããããã¹ãã¨ã¢ãã¯ã®è©±ãããã¦ããã ããã®ã§ããããã®æã«@cakephperããããæ¬¡ã®ãããªæè¦ãé ãã¦ãã¾ããã APIãä¿¡ç¨ãã¦åºæ¬Mockã§ã¨ãã話ãAPIå´ã®ä»æ§å¤æ´ã常ã«ã¦ã©ãããã¦ãªãã¨ãããªãã®ã§ãã¬ã¼ã ã¯ã¼ã¯ã®ã¢ãããã¼ãã¨ã大å¤ãªããããªãã®ããªã¨æã£ããã ãã©ããããã¨ãã¾ã æ¶åã§ãã¦ãªã twitter - @cakephper ã¾ãæåã«åçã¨ãã¦ã¯ãAPIãå¤ããã®ã§ããã°æ¦ããã®ã¨ãããã¨ãªãã¾ããããããããã¯ã¢ãã¯ã使ããã©ããã«ã¯é¢ä¿ããã¾ãããã½ããã¦ã§ã¢ã¯ãã¬ã¼ã ã¯ã¼ã¯ãã©ã¤ãã©ãªçãµã¼ããã¼ãã£ã³ã¼ãã®ä»æ§å¤æ´ã«å¸¸ã«å½±é¿ãåãã¾ããããã§ãè°è«ã®åæãå ±æãã¦ããå¿ è¦ãããã§ãããã ã¦ããããã¹ãã¨ãã¡ã³ã¯ã·ã§ãã«ãã¹ãã®ä½¿ãåããã©ã¡ããæ¸ããããã®ããã¦ããããã¹ãã§ãã¹ããããç®æã¯ã©ãããåæã¨ãã¦ã
Symfonyã®æ©è½ãã¹ãã§ã¯æåã«WebTestCase::createClient()ã¡ã½ããã§Clientãªãã¸ã§ã¯ãã使ãããã®ãªãã¸ã§ã¯ãã使ã£ã¦ãªã¯ã¨ã¹ããè¡ãããã®è¿ãå¤ã確èªãããã¨ã«ãã£ã¦ãã¹ããè¡ãã¾ãã ãã¹ãã¯ã©ã¹: <?php ... class ...Test extends WebTestCase { public function test...() { $client = static::createClient(); $client->request('GET', '/path/to/foo'); $this->assertEquals(200, $client->getResponse()->getStatusCode()); $this->assertThat($client->getCrawler()->filter('title')->text
Symfony2åå¼·ä¼ #6 ã§LTããã¦ãã¾ããã ã¾ã¨ã¾ãã®ãªãLTã«ãªã£ã¦ãã¾ããæãåºãã®ãæ¥ããããã®ã§ãããLTã®å 容ãè£è¶³ãã¾ãã ç®æ¬¡ LTã§è©±ããã㨠å人çã«é·ãã¨æã£ã¦ãããã¹ãã³ã¼ã åå²ããå¾ã®ãã¹ãã³ã¼ã(åãã¾ãã) containerããçæããtokenã䏿£ ãã¹ãæã®ã¿ãcsrfãç¡å¹ã«ããã¨ãæ§ã ãªå¼å®³ã CSRF対çãæå¹ãã©ãããå¤å®ããifæ DIããæ å ±ã¯ãç»é¢é·ç§»ã§åæåããã¦æ¶ãã 諸å 輩ããã®ã¢ããã¤ã¹ ãµãããã LTã§è©±ããã㨠Symfony2ã®ã³ã³ããã¼ã©ã®ãã¡ã³ã¯ã·ã§ãã«ãã¹ãã¯ãè¤æ°ã¢ã¯ã·ã§ã³ã«ã¾ãããã®ã§ä¸ã¤ä¸ã¤ã®ãã¹ãã±ã¼ã¹ãé·ããªããã¡ããã¹ãã±ã¼ã¹ãé·ãã¨ã¡ã³ããã³ã¹ãã¥ããã®ã§ãçãããããPOSTãªã¯ã¨ã¹ãã®ã¢ã¯ã·ã§ã³ããã¹ããããã¨ãã¦ãCSRF対çã«è¦ããã ãSessionãDIãã¦ãããã¹ãã±ã¼ã¹å ã§ç»é¢é·
è¦ç´Â¶ ãã®ç« ã«æ¥ãã¾ã§ã« Symfony2 ã§ã®éçºã«é¢ããã³ã¢ã®ã³ã³ã»ããã®å¤ãã®åéãè¦ã¦ãã¾ãããããã«æ©è½ã追å ããåã«ãããã§ãã¹ãã説æãã¦ããã¾ããããã¦ããããã¹ãã§åã ã®æ©è½ããã¹ãããæ¹æ³ãæ©è½ãã¹ãã§è¤æ°ã®ã³ã³ãã¼ãã³ãã®åä½ãæ£ãããã確èªããæ¹æ³ã®ä¸¡æ¹ãè¦ã¦ããã¾ãã Symfony2 ã®ãã¹ãã®ä¸å¿ã®ã©ã¤ãã©ãªã§ãã PHP ã®ãã¹ãã©ã¤ãã©ãª PHPUnit ã説æãã¾ãããã¹ãã¯éè¦ãªãããã¯ãªã®ã§ãå¾ã®ç« ã§ãæ±ãäºå®ã§ãããã®ç« ã®æå¾ã§ã¯ãã¦ããããã¹ããæ©è½ãã¹ãã®ä¸¡æ¹ã«ããå¤ãã®ãã¹ããæ¸ããã¨ã«ãªãã¾ãããã©ã¦ã¶ãã·ãã¥ã¬ã¼ããããããã©ã¼ã ã«ãã¼ã¿ãå ¥åããããã¦ã§ããã¼ã¸ãæ£ããåºåããã¦ãããã¬ã¹ãã³ã¹ããã§ãã¯ãããã¾ããã¾ããã¢ããªã±ã¼ã·ã§ã³ã®ã³ã¼ããã¼ã¹ã§ãã¹ããã©ã®ãããã®ã«ãã¬ãã¸ãªã®ããã§ãã¯ããã¾ãã Symfony2 ã«ããã
íì ë¡ê·¸ì¸ íìê°ì ë¡ê·¸ì¸ ì림 à ë«ê¸° Save changes
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}