PHPerKaigi 2025 2025-03-22 13:35 - Track A / ã¬ã®ã¥ã©ã¼ãã¼ã¯(40å) åç»: https://youtu.be/LezQt4znOyE ãããã¼ã¶ã«: https://fortee.jp/phperkaigâ¦
ãµã¤ãã¼ã»ãã¥ãªãã£ä¼æ¥Bitdefenderã®å ±åã«ããã¨ãè å¨ã¢ã¯ã¿ã¼ãPHPã®é大ãªèå¼±æ§ï¼CVE-2024-4577ï¼ãæªç¨ãã¦ãæå·é貨ãã¤ãã¼ããªã¢ã¼ãã¢ã¯ã»ã¹ããã¤ã®æ¨é¦¬ï¼RATï¼ãé å¸ããæ»æãæ¥å¢ãã¦ããã ãã®èå¼±æ§ã¯ãWindowsç³»ã·ã¹ãã ä¸ã§CGIã¢ã¼ãã§å®è¡ããã¦ããPHPã«å½±é¿ãããªã¢ã¼ãæ»æè ãä»»æã®ã³ã¼ããå®è¡ãããã¨ãå¯è½ã«ããã ãã®èå¼±æ§ã¯2024å¹´6æ7æ¥ã«å ¬éãããCVSS v3ã¹ã³ã¢ã¯å½å9.8ï¼æå¤§10ç¹ï¼ã¨è©ä¾¡ãããããå¾ã«6.9ã«ä¸æ¹ä¿®æ£ããããå½±é¿ãåããã®ã¯PHP 8.3.8æªæºãPHP 8.2.20æªæºãPHP 8.1.29æªæºã®ãã¼ã¸ã§ã³ã§ããã æ»æã¯ä¸»ã«å°æ¹¾ï¼54.65%ï¼ã馿¸¯ï¼27.06%ï¼ããã©ã¸ã«ï¼16.39%ï¼ã«éä¸ãã¦ãããæ¥æ¬ã1.57%ã®è¢«å®³ãå ±åããã¦ãããGreyNoiseã®è¦³æ¸¬ã«ããã¨ã2025å¹´1æã ã
PHPã«é¢ããæ¥æ¬æå¤§ã®ã«ã³ãã¡ã¬ã³ã¹ã§ãããPHPã«ã³ãã¡ã¬ã³ã¹2024ãã2024å¹´12æ22æ¥ï¼æ¥ï¼ã«éå¬ããã¾ããã«ã³ãã¡ã¬ã³ã¹çãä¸ãä¼ç»ã¨ãã¦ãéå¬ã¾ã§ã®5ã«æéã«ãããPHPã®æè¡è¨äºã®é£è¼ãä¼ç»ãã¾ããããã®è¨äºããèªã¿ã®çããã«ã¯ãPHPã®ãã¾ãã¾ãªæè¡ã«è§¦ããªããã«ã³ãã¡ã¬ã³ã¹å½æ¥ã楽ãã¿ã«ãã¦ããã ããã°ã¨æãã¾ãã 第4åç®ã®ä»åã¯ãPHPã®ããã±ã¼ã¸ç®¡çãã¼ã«ã¨ãã¦ããªãã¿ã®ãComposerãã«ã¤ãã¦ãã©ã®ããã«ããã±ã¼ã¸ã®åå¨ã確èªãããã¼ã¸ã§ã³ã解決ããã®ããä¸é£ã®æµããè¦ã¦ããã¾ãããã ããã±ã¼ã¸ç®¡çãã¼ã«ãComposerã 仿¥ã§ã¯ãå¤ãã®ããã°ã©ãã³ã°è¨èªã«ããã¦ãéçºããã¸ã§ã¯ãã«ããã±ã¼ã¸ç®¡çãã¼ã«ãæ¬ ãããªããã®ã¨ãªãã¾ããã æ¢åè³ç£ã®æ´»ç¨ã§ãè»è¼ªã®åçºæããé¿ããéçºã®å¹çåãå©ãã¦ããã¾ããã¾ããã»ãã¥ãªãã£æèãé«ã¾ãä¸ã§ãå³å¯ãªãã¼
CodeZineç·¨éé¨ã§ã¯ãç¾å ´ã§æ´»èºãããããããã¼ãã¹ã¿ã¼ã«ããããã®ã«ã³ãã¡ã¬ã³ã¹ãDevelopers Summitãããã¨ã³ã¸ãã¢ã®çããã¾ããã¼ã¹ãããããã®ã¤ãã³ããDevelopers Boostããªã©ããã¾ãã¾ãªã«ã³ãã¡ã¬ã³ã¹ãä¼ç»ã»éå¶ãã¦ãã¾ãã
class HOGE{ public string $tel{ set{ if(!ctype_digit($value)){ throw new ValueError("é»è©±çªå·ã¯æ°å¤ã®ã¿"); } if(strlen($value) < 10){ throw new ValueError("é»è©±çªå·ã¯10æå以ä¸"); } $this->tel = $value; } get{ return 'é»è©±çªå·ã¯' . $this->tel; } } } $hoge = new HOGE(); $hoge->tel = '123456789012'; // OK $hoge->tel = 'abcdefghijkl'; // Uncaught ValueError: é»è©±çªå·ã¯æ°å¤ã®ã¿ $hoge->tel = '123'; // Uncaught ValueError: é»è©±çªå·ã¯10æå以ä¸
ããã«ã¡ã¯ãå¤§éªæ¥½æ¥½éçºèª²ã®daina_rksã§ãã Laravelã®ãã¤ã°ã¬ã¼ã·ã§ã³ãæ´»ç¨ãã¦ããã¼ãã«å®ç¾©ãæ´æ°ãã¦ãããµã¼ãã¹ã¯å¤ãã¨æãã¾ãã ããããµã¼ãã¹ãç¶ç¶ããã«ã¤ããæ°ã¥ãã°å¤§éã®ãã¤ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãåå¨ãã¦ããããããªãã¦çµé¨ã¯ããã¾ãããï¼ ç§ãæºãã£ã¦ããããã¸ã§ã¯ãã§ãåãæ©ã¿ã«ç´é¢ãã¦ãã¾ããã ãã®æ©ã¿ã«å¯¾ãã¦ãç§ã¯ãã¤ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãå ¨ã¦åé¤ããã¨ãããã¨ãè¡ãã¾ããã ä»åã¯ãã®ã¨ãã®çµé¨ã«ã¤ãã¦ããªããã¤ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãåé¤ããã«è³ã£ãã®ããåé¤ããã«ããã£ã¦è¡ãªã£ããã¨ãåé¤ããçµæã©ããªå¹æããã£ãã®ãããç´¹ä»ãã¾ãï¼ ãã¤ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãå ¨ã¦åé¤ããã«è³ã£ãçç± åé¡ ãã¤ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãå ¨ã¦å®è¡ããã®ã«æéãããã ãã¤ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¡ã³ããã³ã¹ã³ã¹ããããã ã¢ã¤ã㢠ã¢ã¯ã·ã§ã³ ãã³ãï¼ãªã¹ãã¢ã®ä»çµã¿æ§
PHPè¨èªãç¨ãã¦ãã¹ã¯ãããã¢ããªã±ã¼ã·ã§ã³ãéçºå¯è½ã«ãããã¬ã¼ã ã¯ã¼ã¯ãNativePHPããç»å ´ãã¾ãããç¾å¨ã¢ã«ãã¡çã¨ãã¦å ¬éããã¦ãã¾ãã PHPã©ã³ã¿ã¤ã ã¨Electron/Tauriããã³ãã« NativePHPã¯HTMLãCSSãJavascriptããã¦PHPãç¨ãã¦WindowsãMacãLinuxã®ã¯ãã¹ãã©ãããã©ã¼ã ã«å¯¾å¿ãããã¹ã¯ãããã¢ããªã±ã¼ã·ã§ã³ãéçºå¯è½ã«ãããã¬ã¼ã ã¯ã¼ã¯ã§ãã PHPã©ã³ã¿ã¤ã ã¨ãã¢ããªã±ã¼ã·ã§ã³ãããã¹ãOSã¸ã¢ã¯ã»ã¹ããããã®ã¯ã©ã¹ç¾¤ãWebæè¡ã§ãã¹ã¯ãããã¢ããªã±ã¼ã·ã§ã³ãéçºå¯è½ã«ãããã¬ã¼ã ã¯ã¼ã¯ã§ããElectronãããã¯Tauriããã³ãã«ããã¢ããªã±ã¼ã·ã§ã³ã¨ãã¦ãã«ãããæ©è½ãåãã¦ãã¾ãã ç¾æç¹ã§ã¯PHPã®ãã¬ã¼ã ã¯ã¼ã¯ã¨ãã¦Laravelããã¼ã¹ã«ãã¦ãã¾ãããç¹å®ã®ãã¬ã¼ã ã¯ã¼ã¯ä¾åããªããã¦ããæ¹å
ã¯ããã« ã¿ãªãããç°å¢æ§ç¯ã£ã¦ããã©ããããªãã§ããï¼ åã¯ããã©ãããã§ãã æ¬ã使ã£ã¦PHPã®åå¼·ãããæ©ä¼ããã£ãã®ã§ãããç°å¢æ§ç¯ãããããªãã£ãã®ã§Dockerãç¨ãããã¨ã«ãã¾ããã ããã㨠ãPHP7+MariaDB/MySQLããã¹ã¿ã¼ããã¯ãã§ã¯ãXAMPPã¨ããããã±ã¼ã¸ã使ç¨ããã®ã§ãããDockerã«ã¦ç°å¢ãåç¾ãã¾ãã PHPï¼7.4ã使ããããã«ãã Apacheã使ããããã«ãã MariaDBã使ããããã«ãã ãã®æ¬ã§ã¯ã¡ã¼ã«ãç¨ããããã¡ã¼ã«ãµã¼ããç«ã¡ä¸ãã æ³¨æï¼ãã®è¨äºã§ã¯XAMPPã«ä¼¼ãç°å¢ãæ§ç¯ããæé ã示ãã®ã¿ã§ããã詳ãã解説çã¯ãã¾ããï¼ä»å¾è¿½è¨ãã¦ãããã¯æªå®ï¼ åä½ç°å¢ M1 MacBook Air(MacOS 13.1) Docker ãã¡ã¤ã«æ§æ
PHPã«ã³ãã¡ã¬ã³ã¹æ²ç¸2022ã®ç»å£è³æã§ãã çºè¡¨æéã®é¢ä¿ã§åã¾ããããªãã£ãå 容ãå¤§å¹ ã«å çãã¦ãã¾ãã 以ä¸ãããã¼ã¶ã«ã®å 容ã転è¨ã ---- ãã¹ãæ¸ãã¦ã¾ããï¼ ãã¹ããæ¸ãçç±ã¨å®éã®ãã¹ãã³ã¼ããç´¹ä»ããå®è·µç·¨ã«åããTDD ã3å¹´éå®è·µãã¦ããçµé¨ã«åºã¥ãã¦ã話ãâ¦
<? include("abc.php"); include("def.php"); include("conf.php"); include("db.php"); include("some.php"); include("what.php"); Define("NUM", 100); class super_calc extends great_calc { /* * * * ã³ã³ã¹ãã©ã¯ã¿ * * * * */ public function super_calc($initial_num){ $this->db = DB::getDb(DSN); $this->initial_num = $initial_num; } /* * * * ãã§ã㯠* * * * */ public add_ok($add_num){ $res = $this->addable($add_num);
å¼ç¤¾ã§æ¯æéå¬ããPHPã¨ã³ã¸ãã¢ã®éã§ã好è©ãããã ãã¦ããPHPã¨ã³ã¸ãã¢ã®ããã®åå¼·ä¼ ãPHP TechCafeãã2021å¹´9æã«éå¬ãããã¤ãã³ãã§ã¯ãPHPUnit ã®å§ãæ¹ãã«ã¤ãã¦èªãåãã¾ããã 社å¤ã®æèè ã«ãåå é ãã¦ã¢ããã¤ã¹ãåããªããPHPUnitã®ä½¿ãæ¹ããã¹ãã³ã¼ãã®æ¸ãæ¹ãå¦ã³ã¾ããã ä»åã¯ãã®å 容ã«ã¤ãã¦ã¬ãã¼ããã¾ãã rakus.connpass.com PHPUnitãã¹ãã³ã¼ãã®æ¸ãæ¹ setUpã¡ã½ãã ã¢ãµã¼ã·ã§ã³ ãã¼ã¿ãããã¤ã ã¢ããã¼ã·ã§ã³ ã¢ãã¯ çµæã®ç¢ºèªæ¹æ³ ãã¹ãå®è¡æã«å¤ãå¤ããã±ã¼ã¹ã®å®è£ æ¹æ³ ã¤ãã³ãåå è ããã®è³ªåã³ã¼ãã¼ ãããã« PHPUnitãã¹ãã³ã¼ãã®æ¸ãæ¹ ä»¥ä¸ã®ShowNoteããã¼ã¹ã«ããPHPUnitå°å ¥ã®ç®çã ï½ ãå ¥éã«ãããæ¼ããã¦ããã¹ããã¤ã³ãããªã©ã« ã¤ãã¦ãã£ã¹ã«ãã·ã§ã³ãã¾ããã
ãã®ã¨ã³ããªã¯ãPHP Advent Calendar 2021 ã®20æ¥ç®ã®ã¨ã³ããªã§ãã19æ¥ç®ã¯ @takoba ããã«ãã PHPããã¸ã§ã¯ãã®Composerããã±ã¼ã¸ãRenovateã§å®æã¢ãããã¼ããã ã§ããã SQLã¤ã³ã¸ã§ã¯ã·ã§ã³ãã¯ãã¹ãµã¤ãã¹ã¯ãªããã£ã³ã°(XSS)ã®å¯¾çãè¡ãéã«ã¯ãã¨ã¹ã±ã¼ãå¦çãããã¾ãããã¨è¨ããã¾ããããã®å²ã«PHP以å¤ã®è¨èªã§ã¯ãã¾ãã¨ã¹ã±ã¼ãå¦çã®é¢æ°ãç¨æããã¦ããªãã£ãããã¾ããããã«æ¯ã¹ã¦PHPã¯ã¨ã¹ã±ã¼ãå¦çã®é¢æ°ãé常ã«è±å¯ã§ããããã ãè¦ã¦ããPHPã¯ãªãã¦ã»ãã¥ã¢ãªãã ! ã¨æ©ã¨ã¡ããã人ãããããããã¾ããããããããä»è¨èªã§ã¨ã¹ã±ã¼ãå¦ç颿°ããã¾ããªãã®ã¯ã¡ããã¨çç±ãããã¨æãã®ã§ãã æ¬ç¨¿ã§ã¯ãPHPã®ã¨ã¹ã±ã¼ãå¦çç¨ã®é¢æ°ãç´¹ä»ããªããããã®å©ç¨ç®çã¨ããã®é¢æ°ã使ããªãã§æ¸ã¾ããæ¹æ³ã説æãã¾ãã SQLç¨
ã¯ããã« æ ªå¼ä¼ç¤¾ã©ã¯ã¹ é é ã¡ã¼ã«éçºèª²ã®PHPã¨ã³ã¸ã㢠Jazumaã§ãã 2020å¹´12æ12æ¥(å)ã«PHPã«ã³ãã¡ã¬ã³ã¹ãéå¬ããã¾ããã phpcon.php.gr.jp ä¾å¹´ã§ã¯ã大ç°åºç£æ¥ãã©ã¶ PiOãã§éå¬äºå®ã§ããããä»å¹´ã¯æ°åã³ããã¦ã¤ã«ã¹ã®å½±é¿ã§ãªã³ã©ã¤ã³éå¬ã¨ãªãã¾ãããå人çã«ã¯ãªã³ã©ã¤ã³éå¬ã§ããåãå°æ¹ã®ã¨ã³ã¸ãã¢ã§ãæ°è»½ã«åå ãããã¨ãã§ããã®ã¯è¯ãã£ãã®ã§ã¯ãªããã¨æãã¾ãã ã©ã¯ã¹ã¯PHPã«ã³ãã¡ã¬ã³ã¹ã«ã¹ãã³ãµã¼ã¨ãã¦åå ããã¦ããã ãã¦ããä»ã社å ããLTæ ã§2åãç»å£ãã¾ããã ä»åã¯PHPã«ã³ãã¡ã¬ã³ã¹ã«åå ãã社å ã®PHPã¨ã³ã¸ãã¢ãã¤ãã³ããã¬ãã¼ããã¾ããã®ã§ããç´¹ä»ãããã¨æãã¾ãã åã»ãã·ã§ã³ã®ã¹ã©ã¤ãã«ã¤ãã¦ã¯ä»¥ä¸ã«ã¾ã¨ãã¾ããã®ã§ããæ´»ç¨ããã ããã°å¹¸ãã§ãã No ã¿ã¤ãã« 1 SPAã®APIéçºã®ãããã¥ããããDDDã¨
2022-07-19 ãããã®åé¡ã解決ãã Random Extension 5.x 並ã³ã« Random Extension Improvement RFC ã坿±ºããã master ã« merge ããã¾ããã PHP 8.2 ããå©ç¨å¯è½ã«ãªãã¾ãã https://wiki.php.net/rfc/rng_extension https://wiki.php.net/rfc/random_extension_improvement https://github.com/php/php-src/commit/4d8dd8d258ff365b146bcadcb277ede8992706d0 2022-06-18 ãããã®åé¡ã解決ããããã PHP 8.2 ã«å¯¾ã㦠Random Extension 5.x ã® RFC ã使ãããæç¥¨ãå§ã¾ã£ã¦ãã¾ã 2021-01-15 PHP
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
â»ãã®ããã°ã¯ãã»ãã¥ãªãã£ã¨ã³ã¸ãã¢ã®styprãè±èªã§æ¸ããæç« ã翻訳ãã社å ã§ç£ä¿®ãããã®ã«ãªãã¾ãã ããã«ã¡ã¯ãæ ªå¼ä¼ç¤¾Flatt Securityã®stypr (@stereotype32)ã§ãã 以åå ¬éããè¨äºãFlatt Securityã¯âèªåã®ãããããã¨ãå®ç¾ã§ããâå ´æï¼ã»ãã¥ãªãã£ã¨ã³ã¸ã㢠styprãã§ã話ããéããç§ã¯ç¾å¨Flatt Securityã§0day huntingã¨ã»ãã¥ãªãã£ã®è¨ºæããã¦ãã¾ãã ç§ã¯ 5æã«å ¥ç¤¾ãã¦ãã 0day hunting ã®æ¥åã«åãçµãã§ãã¾ããä»ã®é¢ç½ãæ¥åã¨ä¸¦è¡ãã¦åãçµãã§ããã®ã§ãä¸ã¤ã®è£½åã«ããã¦ããæéã¯ãæä½1æ¥ãããããã1é±éç¨åº¦ã§ãã çµæãããã¾ã§ã®éãç§ã¯ããªãå¤ãã®OSSèå¼±æ§ãè¦ã¤ãã¦ãã¾ãããããã§ä»åã®è¨äºã§ã¯ãç¾å¨ã¾ã§ã«ä¿®æ£ãããèå¼±æ§ã®ãã¡ãæè¡çã«é¢ç½ãé¸ããããã®ãã®ã解説ã
$utf8Str = "â¶â·â¸â¹âº"; $sjisStr = mb_convert_encoding($utf8Str, 'SJIS-mac'); echo(mb_detect_encoding($sjisStr, ['UTF-8','SJIS-mac', 'SJIS-win', 'SJIS'])); // SJIS-win â SJIS-macã«å¤æããã¯ããªã®ã«ã使 ãSJIS-winã¨å¤å®ããã¦ãã¾ãã¾ãã ããããSJIS-macã£ã¦ãªãã ãã£ã¦è©±ã§ãããåã«MacJapaneseã®ã¨ã¤ãªã¢ã¹ã§ãã å¾ã£ã¦MacJapaneseã¨æ¸ãã¦ãåãããæ£ãã誤å¤å®ããã¾ãã ããã¦ã³ã¡ã³ãæ¬ã«This is a bug in PHP's mbstring extensionãmbstringã¨ã¯ã¹ãã³ã·ã§ã³ã®ãã°ããããã¨ãã人ãç¾ãã¦ãã¾ãã ééã£ãã³ã¼ããæ¸ããã¨ãã«èªåã®ããã§ã¯
ããããå ãPHPã§æ¦ãããã«ããªã«ã使ãããªã«ãå¦ã¶ã¹ãã - 廣å·é¡ã«èãPHPå¦ç¿ã«å¤§äºãªã㨠Webã¢ããªã±ã¼ã·ã§ã³éçºè¨èªã¨ãã¦åºã使ãããPHPã黿æããæµ¸éãã¦ããã¾ã§ã®éç¨ãããã¦ãããããå ãPHPãæ´»ç¨ãã¦ããããã«å¿ è¦ãªãã¨ããã¨ãã¹ãã¼ãã®å»£å·é¡ããã«èãã¾ããã æ¬è¨äºã¯2020å¹´3æã«å®æ½ããé éåæããã¨ã«æ§æãã¦ãã¾ãã 1995å¹´ã®å ¬é以éãPHPã¯å¤ãã®ä¼æ¥ããµã¼ãã¹ã§æ¡ç¨ãããã¨ã³ã·ã¹ãã ãæ¡å¤§ãã¦ãã¾ãããè¨èªã®æ´å²ã«æ¯ä¾ããããã«ããã¾ãã¾ãªãµã¼ãã¹ã®ãªãã§ç©ã¿éãªã£ã¦ããPHPã®ã·ã¹ãã ããããã«ãã¦æç¶/çºå±å¯è½ãªãã®ã¨ãããããããããå¤ãã®PHPã¦ã¼ã¶ãæããçåãã¨ãã¹ãã¼ãã«ã¶ã¤ãã¾ãã ä»åã話ã伺ã£ã廣å·é¡ï¼ ã²ãããã»ãã ï¼ããã¯ãæ¬æ¥ã¯å¶å¾¡é¢é£ã®ã¨ã³ã¸ãã¢ã§ãããPHPã¸ã®é¢ããã¯ããããã¾ã§åäººã®æ´»åãã¨è¡¨ç¾ãã¾ããããã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}