ã2026幎çãPHPã®å§ãæ¹ â ç°å¢æ§ç¯ããWebããŒãžäœæãŸã§å®å šã¬ã€ã
- PHPã®ã€ã³ã¹ããŒã«ãšããŒã«ã«ãµãŒããŒã®èµ·å
- åºæ¬ææ³ïŒå€æ°ã»æ¡ä»¶åå²ã»ã«ãŒãã»é¢æ°ïŒ
- HTMLãšPHPãçµã¿åãããåçããŒãžã®äœæ
- LaravelãšWordPressãžã®åŠç¿ããŒãããã
ã€ã³ã¹ããŒã«ã»å®è¡æ¹æ³æ©èŠè¡š
# ããŒãžã§ã³ç¢ºèª
php -v
# çµã¿èŸŒã¿WebãµãŒããŒã§èµ·åïŒéçºçšïŒ
php -S localhost:8080
# PHPãã¡ã€ã«ãçŽæ¥å®è¡
php script.php
# Composerã®ã€ã³ã¹ããŒã«ïŒããã±ãŒãžç®¡çïŒ
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer --version
ã¯ãããŠã®PHPã³ãŒã
<?php
// 倿°
$name = "ã²ãã";
$age = 0;
$fruits = ["ããã", "ã¿ãã", "ããã"];
// æ¡ä»¶åå²
if ($age < 1) {
echo "ã²ããã ãïŒ\n";
} else {
echo "ããã«ã¡ã¯ïŒ\n";
}
// ã«ãŒã
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
// 颿°
function greet(string $name): string {
return "ããã«ã¡ã¯ã{$name}ããïŒ";
}
echo greet($name);
HTMLãšã®çµã¿åãã:
<?php $name = "ã²ãã"; $fruits = ["ããã", "ã¿ãã", "ããã"]; ?>
<!DOCTYPE html>
<html lang="ja">
<body>
<h1>ããã«ã¡ã¯ã<?php echo htmlspecialchars($name); ?>ããïŒ</h1>
<ul>
<?php foreach ($fruits as $fruit): ?>
<li><?php echo htmlspecialchars($fruit); ?></li>
<?php endforeach; ?>
</ul>
</body>
</html>
ããããè©°ãŸããã€ã³ã
Q: HTMLã«å€æ°ãåºåãããšã echo $name ã§å€§äžå€«ïŒ
â ãŠãŒã¶ãŒããã®å
¥åããã®ãŸãŸ echo ãããšXSSïŒã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒè匱æ§ã«ã€ãªãããŸããå¿
ã echo htmlspecialchars($name, ENT_QUOTES, 'UTF-8') ã§ãšã¹ã±ãŒãããŠãã ããã
Q: æååããçºçãã
â ãã¡ã€ã«ã®æåã³ãŒãã¯UTF-8ã§ä¿åããHTMLã® <meta charset="UTF-8"> ãš mb_internal_encoding('UTF-8') ãèšå®ããŠãã ããã
Q: WordPressã®ã«ã¹ã¿ãã€ãºã§ wp_enqueue_scripts ãªã©ã®é¢æ°ãããããªã
â WordPress CodexïŒdeveloper.wordpress.orgïŒã«å
šé¢æ°ã®ãªãã¡ã¬ã³ã¹ããããŸããããŒãéçºã¯ãChild Themeãããå§ãããšæ¢åããŒããå£ããå®å
šã«ã«ã¹ã¿ãã€ãºã§ããŸãã
PHPã£ãŠæè¿ããŸãèããªããã©ããŸã 䜿ãããŠãã®ïŒ
å®ã¯Webã®äžçã§ãŸã ãŸã çŸåœ¹ã ãïŒWordPressãPHPã§äœãããŠããŠãWordPressã¯äžçäžã®Webãµã€ãã®40%以äžã§äœ¿ãããŠãããã ãFacebookãMetaã«æ¹åããåãŸã§é·å¹ŽPHPã䜿ãç¶ããŠããããLaravelãšããPHPãã¬ãŒã ã¯ãŒã¯ã人æ°ãããããæ±äººæ°ã¯PythonãJavaScriptã«æ¯ã¹ããšå°ãªããã©ãWebå¶äœäŒç€ŸãWordPressã«ã¹ã¿ãã€ãºã®ä»äºãæ¢ããªãå¿ é ã®èšèªã ãã
ãžããWordPressãšã€ãªãããã ãïŒã©ããã£ãŠã€ã³ã¹ããŒã«ããã®ïŒ
macOSã«ã¯æåããPHPãå ¥ã£ãŠãããã©ãéçºç°å¢ãšããŠã¯ããã€ãéžæè¢ãããããäžçªæè»œãªã®ã¯ãMAMPãïŒMac/Windows察å¿ïŒããXAMPPãã§ãPHPã»Apacheã»MySQLããŸãšããŠã€ã³ã¹ããŒã«ã§ããããŒã«ã ããããæ¬æ Œçã«ãããããªããphp -S localhost:8080ãã§çµã¿èŸŒã¿ãµãŒããŒã䜿ããããDockerã䜿ãã®ãä»ã®æšæºçãªã¢ãããŒãã ããããŒãžã§ã³ç¢ºèªã¯ãphp -vãã§OKã ãã
ããã§ãphp -vããæã£ãŠã¿ãŠããããŒãžã§ã³ã衚瀺ãããã°æºåOKã ããæ¬¡ã«ãtest.phpããšãããã¡ã€ã«ãäœã£ãŠã<?php echo 'Hello, World!'; ?>ããšæžããŠä¿åãããphp -S localhost:8080ãã§ãµãŒããŒãèµ·åããŠããã©ãŠã¶ã§ãhttp://localhost:8080/test.phpãã«ã¢ã¯ã»ã¹ããŠã¿ããïŒïŒè©ŠããŠã¿ãŠïŒ
ã£ãŠäœïŒHTMLãšçµã¿åãããã£ãŠã©ãããããšïŒ
PHPã¯ã<?phpããšã?>ãã¿ã°ã§å²ãŸããéšåãPHPã³ãŒããšããŠå®è¡ãããããHTMLãã¡ã€ã«ã®äžã«PHPãåã蟌ããä»çµã¿ã§ãåçã«HTMLãçæã§ãããã ãããšãã°ã<h1>ããã«ã¡ã¯ã<?php echo $name; ?>ããïŒ</h1>ãã®ããã«æžãã°ã倿°ã®å€ã«å¿ããŠè¡šç€ºãå€ãããããµãŒããŒã§PHPãå®è¡ãããåŸããã©ãŠã¶ã«ã¯HTMLã ããå±ãä»çµã¿ã ãã
倿°ã®æžãæ¹ãç¬ç¹ã ã£ãŠèãããã©ïŒ
PHPã®å€æ°ã¯ã$ãèšå·ã§å§ãŸãã®ãç¹åŸŽã ããã$name = 'ã²ãã'ãã$age = 0ãã$isStudent = trueãã®ããã«æžããã ãå宣èšã¯äžèŠã§ãåã倿°ã«æ°å€ãæååãä»£å ¥ã§ããåçåä»ãèšèªã ããæååã®äžã§å€æ°ã䜿ãå Žåãããã«ã¯ã©ãŒãã"ããã«ã¡ã¯ $name ãã"ããªããã®ãŸãŸå±éããããã©ãã·ã³ã°ã«ã¯ã©ãŒãã§ã¯å±éãããªãããæ³šæãå¿ èŠã ãã
ããŒã¿ããŒã¹ãšã®é£æºã¯ã©ãããã®ïŒ
PHPãšMySQLã®çµã¿åããã¯Webã¢ããªã®å®çªã ãããPDOïŒPHP Data ObjectsïŒããšããã€ã³ã¿ãŒãã§ãŒã¹ã䜿ããšãSQLã€ã³ãžã§ã¯ã·ã§ã³å¯Ÿçãããªããå®å šã«DBãæäœã§ãããã ãã$pdo = new PDO('mysql:host=localhost;dbname=mydb', $user, $pass)ãã§æ¥ç¶ããŠãã$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?')ãâã$stmt->execute([$id])ãâã$stmt->fetchAll()ãã§ããŒã¿ãååŸã§ããããããªãã¢ãã¹ããŒãã¡ã³ãã䜿ãã°çŽæ¥SQLãæååé£çµãããããã£ãšå®å šã ãã
WordPressãã䜿ãã ãããªãPHPã®ç¥èã¯å¿ èŠãªãããã§ããããŒãããã©ã°ã€ã³ãã«ã¹ã¿ãã€ãºããããããªãªãžãã«ã®WordPressããŒããäœãããããšããå Žåã¯PHPãå¿ èŠã«ãªããã ãWordPressã®ã«ã¹ã¿ãã€ãºã¯ãPHPã®åºç€ â WordPressåºæã®é¢æ°ïŒãã³ãã¬ãŒãã¿ã°ïŒâ ã«ã¹ã¿ã æçš¿ã¿ã€ãã»ããã¯ã»ãã£ã«ã¿ãŒããšããé ã§åŠã¶ã®ãããããã ããããªãŒã©ã³ã¹ã®Webå¶äœæ¡ä»¶ã«å€ããããéèŠã¯æå€ãšé«ããã
Laravelã£ãŠãããã¬ãŒã ã¯ãŒã¯ãæåã ããïŒ
Laravelã¯PHPã§æã人æ°ã®ããWebãã¬ãŒã ã¯ãŒã¯ã§ããPHPã®RailsããšãåŒã°ããããMVCïŒModel-View-ControllerïŒã¢ãŒããã¯ãã£ã§ãèªèšŒã»ORMïŒEloquentïŒã»ãã€ã°ã¬ãŒã·ã§ã³ã»ã«ãŒãã£ã³ã°ãªã©ãæã£ãŠããŠããã«ã¹ã¿ãã¯Webã¢ããªãå¹çããéçºã§ãããã ããcomposer create-project laravel/laravel myappãã§ãããžã§ã¯ããäœããããPHPã®åºç€ãèŠãããLaravelã«é²ãã®ãã¢ãã³ãªPHPéçºè ãžã®éã ãã
PHPãåŠã¶ããŒãããããæããŠïŒ
ããããã®é çªã玹ä»ããããâ PHPåºç€ææ³ïŒ2ã3é±éïŒââ¡PDOã§ã®DB飿ºââ¢ãªããžã§ã¯ãæåPHPïŒã¯ã©ã¹ã»ã€ã³ã¿ãŒãã§ãŒã¹ïŒââ£Composerã§ã®äŸå管çââ€Laravelå ¥éãšããæµããããããWordPressã«ã¹ã¿ãã€ãºãç®æããªãâ ââ¡âWordPressããŒãéçºãšããæµããããããDockerã䜿ãã°ç°å¢æ§ç¯ãã¹ã ãŒãºã«ãªããããDockerç°å¢ã§PHPéçºãå§ããã®ãä»ã®æšæºçãªã¢ãããŒãã ãã