{"id":3590,"date":"2014-12-14T23:49:29","date_gmt":"2014-12-14T14:49:29","guid":{"rendered":"http:\/\/www.lancard.com\/blog\/?p=3590"},"modified":"2025-03-12T11:28:22","modified_gmt":"2025-03-12T02:28:22","slug":"jenkins%e3%81%a7phpcs%e3%81%99%e3%82%8b%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.lancard.com\/blog\/2014\/12\/14\/jenkins%e3%81%a7phpcs%e3%81%99%e3%82%8b%e3%80%82\/","title":{"rendered":"Jenkins\u3067phpcs\u3059\u308b\u3002"},"content":{"rendered":"<p>1.\u4eca\u56de\u306f\u3001Jenkins\u3067phpcs\u3092\u4f7f\u3046\u624b\u9806\u3092\u66f8\u3044\u3066\u3044\u304d\u307e\u3059\u3002<br \/>\n\u3000\u3000\u6700\u8fd1CakePHP\u306e\u4ed5\u4e8b\u3092\u3084\u3063\u3066\u3044\u308b\u306e\u3067cakephp-codesniffer\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n<p>2.phing\u3001phpcs\u3001cakephp-codesniffer\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\n\u3000\u3000\u3068\u308a\u3042\u3048\u305a\u3001\u4ee5\u4e0b\u306e\u4f5c\u696d\u306fjenkins\u30e6\u30fc\u30b6\u30fc\u3067\u884c\u3044\u307e\u3057\u305f\u3002<br \/>\n\u3000\u3000phing\u3001phpcs\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\n\u3000\u3000phpcs\u306fphing\u3068\u4e00\u7dd2\u306b\u5165\u308a\u307e\u3059\u3002<\/p>\n<pre lang=\"shell\">\r\ncomposer global require 'phing\/phing:2.*'\r\n<\/pre>\n<p>\u3000\u3000cakephp-codesniffer\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/p>\n<pre lang=\"shell\">\r\ncomposer global require 'cakephp\/cakephp-codesniffer'\r\n<\/pre>\n<p>\u3000\u3000\u5168\u30e6\u30fc\u30b6\u30fc\u3067\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\/etc\/profile\u306b\u4ee5\u4e0b\u306e\u884c\u3092\u8ffd\u52a0<br \/>\n\u3000\u3000(composer global\u3060\u3068\u5bfe\u8c61\u30e6\u30fc\u30b6\u30fc\u306e\u30db\u30fc\u30e0\u306e.composer\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059\u3002)<\/p>\n<pre lang=\"shell\">\r\nexport PATH=\"$PATH:\/var\/lib\/jenkins\/.composer\/vendor\/bin\"\r\n<\/pre>\n<p>\u3000\u3000phpcs\u3067cakephp-codesniffer\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n<pre lang=\"shell\">\r\n\/var\/lib\/jenkins\/.composer\/vendor\/bin\/phpcs --config-set installed_paths \/var\/lib\/jenkins\/.composer\/vendor\/cakephp\/cakephp-codesniffer\r\n<\/pre>\n<p>\u3000\u3000\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067CakePHP\u304c\u8868\u793a\u3055\u308c\u308c\u3070OK\u3067\u3059\u3002<\/p>\n<pre lang=\"shell\">\r\nphpcs -i\r\n<\/pre>\n<p>3.phing\u306e\u8a2d\u5b9a<br \/>\n\u3000\u3000Jenkins\u306e\u7ba1\u7406\u2192\u30b7\u30b9\u30c6\u30e0\u306e\u8a2d\u5b9a\u3092\u62bc\u4e0b<br \/>\n\u3000\u3000Phing\u306e\u8ffd\u52a0\u3092\u62bc\u4e0b\u3057\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5165\u529b\u3057\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/5-400x105.png\" alt=\"5\" width=\"400\" height=\"105\" class=\"aligncenter size-medium wp-image-3592\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/5-400x105.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/5-602x159.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/5-900x238.png 900w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/5.png 1058w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>4.Jenkins\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br \/>\n\u3000\u3000\u4ee5\u4e0b\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<br \/>\n\u3000\u3000Checkstyle Plugin<br \/>\n\u3000\u3000Phing Plugin<br \/>\n\u3000\u3000PHP Plugin<br \/>\n\u3000\u3000Git Plugin<\/p>\n<p>5.\u30b8\u30e7\u30d6\u306e\u5b9f\u884c\u624b\u9806<br \/>\n\u3000\u3000\u2460git\u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u53d6\u5f97<br \/>\n\u3000\u3000\u2461phing\u3067phpcs\u3092\u5b9f\u884c<\/p>\n<p>\u3000\u3000\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u69cb\u6210\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/4.png\" alt=\"4\" width=\"148\" height=\"206\" class=\"aligncenter size-full wp-image-3594\" \/><\/a><br \/>\n\u3000\u3000app\u304cCakePHP\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067<br \/>\n\u3000\u3000build.xml\u304cphing\u306ebuild\u30d5\u30a1\u30a4\u30eb<br \/>\n\u3000\u3000build\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306bphpcs\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u5165\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3000\u3000phing\u306ebuild\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\nbuild.xml<\/p>\n<pre lang=\"xml\">\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<!--\r\n    Phing build config file.\r\n    @link http:\/\/www.phing.info\/\r\n-->\r\n<project name=\"phpcs-test\" default=\"build\">\r\n    <!-- Properties -->\r\n    <property name=\"basedir\" value=\"${phing.dir}\" \/>\r\n    <property name=\"appdir\"  value=\"${basedir}\/app\" \/>\r\n    <property name=\"logdir\"  value=\"${basedir}\/build\/logs\" \/>\r\n\r\n    <!-- Build -->\r\n    <target name=\"build\"\r\n        depends=\"phpcs\"\/>\r\n\r\n    <!-- PHPCodeSniffer -->\r\n    <target name=\"phpcs\">\r\n        <exec dir=\"${basedir}\" executable=\"phpcs\">\r\n            <arg line=\"--standard=${basedir}\/build\/phpcs.xml\" \/>\r\n            <arg line=\"--report=checkstyle\" \/>\r\n            <arg line=\"--report-file=${logdir}\/phpcs-report.xml\" \/>\r\n            <arg line=\"${appdir}\" \/>\r\n        <\/exec>\r\n    <\/target>\r\n\r\n<\/project>\r\n<\/pre>\n<p>\u3000\u3000\u4e0a\u8a18\u306e\u8a2d\u5b9a\u306e\u5834\u5408\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u306e\u3068\u540c\u3058\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<pre lang=\"shell\">\r\nphpcs --standard=${basedir}\/build\/phpcs.xml --report=checkstyle --report-file=${logdir}\/phpcs-report.xml ${appdir}\r\n<\/pre>\n<p>\u3000\u3000\u5909\u6570\u3092\u5c55\u958b\u3059\u308b\u3068\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u611f\u3058<\/p>\n<pre lang=\"shell\">\r\nphpcs --standard=\/var\/lib\/jenkins\/jobs\/phpcs-test\/workspace\/build\/phpcs.xml --report=checkstyle --report-file=\/var\/lib\/jenkins\/jobs\/phpcs-test\/workspace\/build\/logs\/phpcs-report.xml \/var\/lib\/jenkins\/jobs\/phpcs-test\/workspace\r\n<\/pre>\n<p>phpcs\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<br \/>\nphpcs.xml<\/p>\n<pre lang=\"xml\">\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<!--\r\n    PHP_Codesniffer config file.\r\n    @link http:\/\/pear.php.net\/package\/PHP_CodeSniffer\r\n-->\r\n<ruleset name=\"Custom Standard\">\r\n    <!--\r\n        Exclude sniff rule.\r\n        @see \/usr\/lib\/php\/pear\/PHP\/CodeSniffer\/Standards\/PSR1\/Sniffs\/Classes\/ClassDeclarationSniff.php\r\n        @see \/usr\/lib\/php\/pear\/PHP\/CodeSniffer\/Standards\/PSR1\/Sniffs\/Files\/SideEffectsSniff.php\r\n    -->\r\n    <rule ref=\"CakePHP\"\/>\r\n\r\n    <!-- Exclude file and directory. -->\r\n    <exclude-pattern>*database.php<\/exclude-pattern>\r\n    <exclude-pattern>*i18n.php<\/exclude-pattern>\r\n    <exclude-pattern>*core.php<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/Config\/*<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/Console\/*<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/Lib\/*<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/Plugin\/*<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/tmp\/*<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/Vendor\/*<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/webroot\/*<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/Test\/*<\/exclude-pattern>\r\n    <exclude-pattern>*\/app\/View\/Helper\/*<\/exclude-pattern>\r\n    \r\n<\/ruleset>\r\n<\/pre>\n<p>6.\u65b0\u898f\u30b8\u30e7\u30d6\u306e\u4f5c\u6210<br \/>\n\u3000\u3000\u65b0\u898f\u30b8\u30e7\u30d6\u4f5c\u6210\u3092\u62bc\u4e0b\u3057\u307e\u3059\u3002<br \/>\n\u3000\u3000\u30b8\u30e7\u30d6\u540d\u3092\u5165\u529b\u3057\u3001\u300c\u30d5\u30ea\u30fc\u30b9\u30bf\u30a4\u30eb\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30d3\u30eb\u30c9\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<br \/>\n\u3000\u3000\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u7ba1\u7406\u3092\u8a2d\u5b9a\u5f8c\u3001\u30d3\u30eb\u30c9\u624b\u9806\u306e\u8ffd\u52a0\u3067\u300cPhing\u306e\u547c\u51fa\u3057\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/1.png\" alt=\"1\" width=\"242\" height=\"199\" class=\"aligncenter size-full wp-image-3596\" \/><\/a><br \/>\n\u3000\u3000\u4f7f\u7528\u3059\u308bPhing\u3067myphing\u3092\u9078\u629e<br \/>\n\u3000\u3000Phing\u306e\u547c\u51fa\u3057\u306b\u300cphpcs\u300d\u3068\u5165\u529b\u3057\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/6-400x90.png\" alt=\"6\" width=\"400\" height=\"90\" class=\"aligncenter size-medium wp-image-3597\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/6-400x90.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/6-602x136.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/6-900x204.png 900w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/6.png 1052w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><br \/>\n\u3000\u3000\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3068\u306e\u95a2\u9023\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/7.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/7-400x166.png\" alt=\"7\" width=\"400\" height=\"166\" class=\"aligncenter size-medium wp-image-3598\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/7-400x166.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/7-602x251.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/7-900x375.png 900w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/7.png 1074w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>7.\u8a66\u3057\u3066\u307f\u308b<br \/>\n\u3000\u3000\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u30d3\u30eb\u30c9\u3092\u8a66\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<pre lang=\"php\">\r\n<?php\r\n\/**\r\n * Application level Controller\r\n *\r\n * This file is application-wide controller file. You can put all\r\n * application-wide controller-related methods here.\r\n *\r\n * @link          http:\/\/cakephp.org CakePHP(tm) Project\r\n * @package       app.Controller\r\n * @since         CakePHP(tm) v 0.2.9\r\n *\/\r\n\r\nApp::uses('Controller', 'Controller');\r\n\r\n\/**\r\n * Application Controller\r\n *\r\n * Add your application-wide methods in the class below, your controllers\r\n * will inherit them.\r\n *\r\n * @packageapp.Controller\r\n * @linkhttp:\/\/book.cakephp.org\/2.0\/en\/controllers.html#the-app-controller\r\n *\/\r\nclass AppController extends Controller {\r\n\r\n\/**\r\n * hoge\r\n * @return void\r\n *\/\r\npublic function hoge(){\r\n$this->log('hoge', LOG_DEBUG);\r\n}\r\n}\r\n<\/pre>\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u51fa\u529b\u3055\u308c\u307e\u3057\u305f\u3002<br \/>\n<a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/8.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/8-400x290.png\" alt=\"8\" width=\"400\" height=\"290\" class=\"aligncenter size-medium wp-image-3599\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/8-400x290.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/8-602x436.png 602w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/8.png 859w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\u30b3\u30e1\u30f3\u30c8\u3067hoge\u3068@return void\u306e\u9593\u306b\uff11\u884c\u5fc5\u8981<br \/>\nhoge(){\u3067hoge()\u3068{\u306e\u9593\u306b\u30b9\u30da\u30fc\u30b9\u304c\u5fc5\u8981\u3068\u3067\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u96e3\u3057\u3044\u30fb\u30fb\u3002<\/p>\n<p>8.sublime-phpcs\u3092\u4f7f\u3063\u3066\u307f\u308b<br \/>\n\u3000\u3000package controll\u3067Phpcs\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<br \/>\n<a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/9.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/9-400x81.png\" alt=\"9\" width=\"400\" height=\"81\" class=\"aligncenter size-medium wp-image-3600\" srcset=\"https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/9-400x81.png 400w, https:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/9.png 493w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\u3000\u3000\u30ed\u30fc\u30ab\u30eb\u3067\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n<pre lang=\"shell\">\r\ncomposer global require 'phing\/phing:2.*'\r\ncomposer global require 'cakephp\/cakephp-codesniffer'\r\n~\/.composer\/vendor\/bin\/vendor\/bin\/phpcs --config-set installed_paths ~\/.composer\/vendor\/bin\/vendor\/cakephp\/cakephp-codesniffer\r\n<\/pre>\n<p>Preferences\u2192Package Settings\u2192PHP Code Sniffer\u2192Settings &#8211; User\u3068\u958b\u304d\u307e\u3059\u3002<br \/>\n\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u8a18\u8ff0\u3057\u307e\u3059\u3002<\/p>\n<pre lang=\"json\">\r\n{\r\n\"phpcs_executable_path\": \"\/\u30e6\u30fc\u30b6\u30fc\u306e\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\/.composer\/vendor\/bin\/vendor\/bin\/phpcs\",\r\n    \"phpcs_additional_args\": {\r\n        \"--standard\": \"CakePHP\"\r\n    },\r\n}\r\n<\/pre>\n<p>\u3053\u308c\u3067\u3060\u3081\u306a\u3068\u3053\u308d\u3092\u8868\u793a\u3057\u3066\u304f\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p><a href=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/11.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.lancard.com\/blog\/wp-content\/uploads\/2014\/12\/11.png\" alt=\"11\" width=\"300\" height=\"166\" class=\"aligncenter size-full wp-image-3601\" \/><\/a><\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-facebook nolightbox\" data-provider=\"facebook\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Facebook\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3590&amp;t=Jenkins%E3%81%A7phpcs%E3%81%99%E3%82%8B%E3%80%82&amp;s=100&amp;p[url]=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3590&amp;p[images][0]=http%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-content%2Fuploads%2F2014%2F12%2F5-400x105.png&amp;p[title]=Jenkins%E3%81%A7phpcs%E3%81%99%E3%82%8B%E3%80%82\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"Facebook\" title=\"Share on Facebook\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/facebook.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"http:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3590&amp;text=Jenkins%E3%81%A7phpcs%E3%81%99%E3%82%8B%E3%80%82\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&amp;url=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3590&amp;title=Jenkins%E3%81%A7phpcs%E3%81%99%E3%82%8B%E3%80%82\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-tumblr nolightbox\" data-provider=\"tumblr\" target=\"_blank\" rel=\"nofollow\" title=\"Share on tumblr\" href=\"https:\/\/tumblr.com\/share?s=&amp;v=3&amp;t=Jenkins%E3%81%A7phpcs%E3%81%99%E3%82%8B%E3%80%82&amp;u=https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3590\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"tumblr\" title=\"Share on tumblr\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/tumblr.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Jenkins%E3%81%A7phpcs%E3%81%99%E3%82%8B%E3%80%82&amp;body=%E3%82%B7%E3%82%A7%E3%82%A2%E3%81%99%E3%82%8B%EF%BC%9A:%20https%3A%2F%2Fwww.lancard.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F3590\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.lancard.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>1.\u4eca\u56de\u306f\u3001Jenkins\u3067phpcs\u3092\u4f7f\u3046\u624b\u9806\u3092\u66f8\u3044\u3066\u3044\u304d\u307e\u3059\u3002 \u3000\u3000\u6700\u8fd1CakePHP\u306e\u4ed5\u4e8b\u3092\u3084\u3063\u3066\u3044\u308b\u306e\u3067cakephp-codesniffer\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 2.phing\u3001phpcs\u3001cakephp-codes [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[125],"class_list":["post-3590","post","type-post","status-publish","format-standard","hentry","category-php","tag-jenkins"],"_links":{"self":[{"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/posts\/3590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/comments?post=3590"}],"version-history":[{"count":5,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/posts\/3590\/revisions"}],"predecessor-version":[{"id":3603,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/posts\/3590\/revisions\/3603"}],"wp:attachment":[{"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/media?parent=3590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/categories?post=3590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lancard.com\/blog\/wp-json\/wp\/v2\/tags?post=3590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}