á¡áá°ážáááºáá®ážáá¬ážááá·áº User Agent áá±á«ááºážá á®ážááŒáá·áº áá±á¬ááºážááá¯áá»ááºáá áºáá¯ááŒáá·áº áá±á¬ááºáá¶ááœáá·áºáá¬ážááá·áº PHP ááá±á¬áá»ááºá Git ááá¯ááŸá±á¬ááºááŸá¯ááœáẠá¡áá¹ááá¬ááºááŸááá±á¬ áá»á°ážááœááºááŸá¯ááŸá áºáá¯ááᯠááŸá¬ááœá±ááœá±á·ááŸáááŸá¯ááŸáá·áºáááºáááºá á á¯á¶á ááºážá á áºáá±ážááŸá¯á áááŠážááááºáá»á¬ážááᯠáá¯ááºáá±ááá¯ááºáá«áááºá ááá¯ááºááá¯ááºáá°áááŒá±áá¬áá¶áá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŸá¯á¡á Git repository ááᯠáááºáá¶áá±á¬ááºááœááºáá±ážááá·áº git.php.net áá¬áá¬ááẠáááºáááºážááŒá áºáá±á¬áºáááºáž ááá±á¬áá»ááºááá±á¬á·ááºáá²áá±ážáá¬ážáá°á¡áá±á¬áá·áºáá»á¬ážáá«ááŸááá±á¬ áá±áá¬áá±á·á áºááᯠááá¯ážáá°áá¶áááŒá±á¬ááºáž áá±á¬ááºáá»ááºáá»áá²á·áááºá
ááá¯ááºááá¯ááºáá°áá»á¬ážááẠmaster.php.net áá¬áá¬á áá±áá¬áá±á·á Ạá á®áá¶ááá·áºááœá²ááŸá¯á áá áºááœáẠááááºážáááºážáá¬ážáá±á¬ áá¯á¶ážá áœá²áá°áá±áá¬áá±á·á áºááᯠáá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáááºááŸá¬ ááŒá áºááá¯ááºáááºá master.php.net á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá¡á á០ááá·áºááœááºážáá¬ážááá·áº main.php.net áá¬áá¬á¡áá áºááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááŒá®ážááŒá áºáááºá php.net á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááá¯á· áááºáá±á¬ááºááẠá¡áá¯á¶ážááŒá¯ááá·áº developer á áá¬ážááŸááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒááºáááºáááºááŸááºáá¬ážááŒá®ážá á¡áá°ážá áá¬ážááŸáẠááŒááºáááºááá°áá±ážáá¯á¶á á¶ááŸáá áºááá·áº á áá¬ážááŸááºááŒááºáááºáááºááŸááºááŒááºážáá¯ááºáááºážá ááºááᯠá áááºáá²á·áááºá git.php.net ááŸáá·áº svn.php.net repositories áá»á¬ážááẠread-only áá»ááºááŸááá±ááẠ(ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯ááᯠGitHub ááá¯á· ááœáŸá±á·áá¬ážáááº)á
PHP ááᯠââáááºáá±á¬ááºáá° Rasmus Lerdorf á á¡áá±á¬áá·áºááŒáá·áº ááŒá¯áá¯ááºáá±á¬ ááááá¯á¶áž áááá¯áá¬ážá¡ááºáá±á¬ áá»á°ážááœááºááŸá¯ááᯠááŸá¬ááœá±ááœá±á·ááŸáááŒá®ážáá±á¬ááºááœáẠáááºážáá¡áá±á¬áá·áº áááºááºáá¶ááááºáᯠáá°ááááŒá®áž á¡ááá PHP developer áá áºáŠážááŒá áºááá·áº Nikita Popov ááẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒááºáááºáá¯ááºááááºážáá²á·ááŒá®áž áá»á°ážááœááºááá·áºá¡áá±á¬áá·áºá¡ááœáẠááœáá·áºááŒá¯áá»ááºáá»á¬ážááᯠááááºááá¯á·áá²á·áááºá á¡áá»áááºá¡áá±á¬áºááŒá¬ááŒá®ážáá±á¬ááºá áá áºáá»á áºáááºáááºááŸááºááŒáá·áº á¡áááºááŒá¯ááŒááºážáááŸááá²á php-src ááá¯ááŸá±á¬ááºáááºážááá¯á· áááºáá±á¬ááºááœáá·áºááŸááá°ááá¯ááºážááẠá áááºáá°ážáááºá á¬áá±ážááá¬ááᯠá¡áá¯á¶ážááŒá¯á á¡ááŒá±á¬ááºážá¡áá²áá áºáᯠááŒá¯áá¯ááºááá¯ááºáá±á¬ááŒá±á¬áá·áº á¡áá»áááºá¡áááºááŒá¬ááŒá®ážáá±á¬áẠááááºááá¯á·ááŒááºážááẠá¡áááá¹áá«ááºáá²á·ááŒá±á¬ááºáž áá¬ážáááºáá¬áá²á·áááºá
ááá¯á·áá±á¬áẠááá¯ááºááá¯ááºáá°áá»á¬ážááẠNikita ááá¯ááºááá¯áẠá¡áá±á¬ááºáá±á¬ááºáᬠááá±á¬ááºážáá±á¬ áá»á°ážááœááºááŸá¯áá áºáá¯ááᯠáá±ážááá¯á·áá²á·áááºá repositories ááá¯áááºáá±á¬ááºáááºá¡áá¯á¶ážááŒá¯ááá·áº gitolite áááºáá±á¬ááºááŸá¯áááŸááºáááºážáá»á¬ážááá¯ááœá²ááŒááºážá áááºááŒá¬ááŒááºážááŒáá·áºá á¡ááŸááºááááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááá¯ááŒá¯áá¯ááºáá²á·áá±á¬á¡áá¯á¶ážááŒá¯áá°ááá¯áá±á¬áºáá¯ááºáááºááŒáá¯ážáááºážááŸá¯áá áºáá¯ááŒá¯áá¯ááºáá²á·áááºá áá»á°ážááœááºááŒá±áá¬áá¶ááŒááºážááᯠááœáá·áºáá¬ážáá±á¬áºáááºáž á¡áá¹ááá¬ááºááŸááá±á¬ á¡ááŒá±á¬ááºážá¡áá²ááŸá áºáá¯á¡ááœáẠááŸááºáááºážááá·áºááœááºážááŸá¯áá»á¬ážááᯠááŸá¬áááœá±á·áá«á gitolite áá»áááºáááºááŸá¯ááᯠááŸá±á¬ááºááœáŸá²á áááááááºáá»á¬ážááᯠááá¯ááºááá¯ááºááá·áºááœááºážáá¬ážáá±á¬ááŒá±á¬áá·áº á¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠáá»á¬áž ááááá¯ááºáá»ááºá á®ážááœá¬ážááŒá±á¬ááºáž áááá¬áááºááŸá¬ážáá¬áááºá
git.php.net server ááᯠááŒááºááŒááºáááºáááºááááºááá¯ááºááŒá®áž primary repository ááᯠGitHub ááá¯ááœáŸá±á·ááá¯ááºáá«áááºá gitolite ááá¯áá¯á¶ážááŒá®áž SSH access á¡ááŒáẠHTTPS ááá± commit ááœá±ááá¯á·ááá¯á·ááá²á· repository á¡ááœáẠlogin áá±á¬ááºáá áºáá¯ááŸááááºááá¯áá¬ááá¯áááºáž áá»á áºáá»á°ááŸá¯áá¬ážááŒáá«áááºá áá®ááá á¹á ááŸá¬ git-http-backend ááᯠGit áá²á· interaction áá¯ááºááá¯á·á¡ááœááºá¡áá¯á¶ážááŒá¯áá²á·ááŒá®áž Apache2 HTTP server ááá¯áá¯á¶ážááŒá®áž authentication áá¯ááºáá²á·áá«áááºá á¡á²áá® server á host áá¯ááºáá¬ážáá²á· database ááá¯áááºáá±á¬ááºááŒááºážá¡á¬ážááŒáá·áº permission ááœá±ááᯠverify áá¯ááºáá²á·áá«áááºá áá¬áᬠmaster.php.netá áá±á¬á·áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá¯á¶áá¬áá áá¯á¶ááŸááºá áá¬ážááŸááºááá¯áá« á¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºááœáá·áºááŒá¯áá²á·áááºá HTTP server ááŸááºáááºážáá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŸá¯á¡á á¡áá¹ááá¬ááºááŸááá±á¬ ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠHTTPS ááŸáá áºááá·áº ááá·áºááœááºážáá¬ážááŒá±á¬ááºáž á¡áááºááŒá¯áá²á·áááºá
ááŸááºáááºážáá»á¬ážááᯠá á áºáá±ážááŒáá·áºáá»áŸáẠááá¯ááºááá¯ááºáá°áá»á¬ážááẠáááá¡ááŒáááºááœáẠáá»áááºáááºááŒááºážáááŒá¯áá² á¡áá±á¬áá·áºá¡áááºááᯠáŠážá áœá¬ááá·áºááŸááºážááẠááŒáá¯ážá á¬ážáá²á·ááŒá±á¬ááºáž ááœá±á·ááŸáááááºá áááºážááᯠáá±á¬áºáá¯ááºááŒá®ážáá±á¬áẠáááá¡ááŒáááºááœáẠáááºáá±á¬ááºáá²á·ááŒáááºá ááá¯ááá¯áááºááŸá¬ áááºážááá¯á·ááẠRasmus ááŸáá·áº Nikita ááá¯á·á á áá¬ážááŸááºáá»á¬ážááᯠááŒáá¯áááºááááŸááá±á¬áºáááºáž áááºážááá¯á·á á¡áá¯á¶ážááŒá¯áá°á¡áááºáá»á¬ážááá¯áá° áááááŸááá«á ááá¯ááºááá¯ááºáá°áá»á¬ážááẠDBMS ááᯠáááºáá±á¬ááºááá¯ááºáá²á·áá«áá á¡áááºááŒá±á¬áá·áº ááá¯áá±áá¬ááœáẠáááºááŸááºáá¬ážáá±á¬ á¡áá¯á¶ážááŒá¯áá°á¡áááºááᯠáá»ááºáá»ááºážá¡áá¯á¶ážáááŒá¯áá²á·ááááºážááá¯áááºááᯠááŸááºážááŸááºážáááºážáááºáž áááááŸáááá±ážáá«á á€ááœá²ááœá²ááŸá¯ááᯠáá¯á¶ááŒááºá áááºáá»á áœá¬ ááŸááºážááŒááá¯ááºááŒááºáž áááŸááá±ážáá«á master.php.net á áááºááºáá¯ááºááŸá¯ááẠááá¯á¡áá»áááºááœáẠá¡ááŒá áºááá¯ááºáá¯á¶áž á¡ááŒá±á¡áá±á¡ááŒá ẠáááºááŸááºáá¶áá¬ážááááºá áá¬áᬠá¡ááœááºáá±á¬ááºážááœááºážáá±áá±á¬ áá¯ááºááŸáá·áº áá±ááºááá®áá±á¬á·áá±á¬ OS ááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒá®áž áááºážááá¯á·ááœáẠá¡áá»áááºááŒá¬ááŒáá·áºá áœá¬ á¡ááºááááºááá¯ááºááá±ážáá² á¡á¬ážáááºážáá»ááºáá»á¬ážáááºáž ááŸááá±áá«áááºá
áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááœáẠmaster.php.net áá¬áá¬áááºáááºážáá»ááºááᯠááŒááºáááºááá·áºááœááºážááŒááºážááŸáá·áº PHP 8 áá¬ážááŸááºážá¡áá
áºááá¯á· scripts áá»á¬ážááᯠááœáŸá±á·ááŒá±á¬ááºážááŒááºážáá»á¬áž áá«áááºáááºá SQL ááá¯ážááŒááºážááᯠááŸá¯ááºááœá±ážá
á±ááá·áº parameterized queries áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáá±áá¬áá±á·á
áºá
á®áá¶ááá·áºááœá²ááŸá¯áá¯ááºááᯠááŒááºáááºáá±ážáá¬ážáá¬ážáá«áááºá bcrypt algorithm ááᯠáá±áá¬áá±á·á
áºááœáẠá
áá¬ážááŸáẠhash áá»á¬ážááᯠááááºážáááºážááẠááá¯á¡áá¯á¶ážááŒá¯ááẠ(ááááºáá á
áá¬ážááŸááºáá»á¬ážááᯠá¡á¬ážáááºážáá±á¬ MD5 hash ááŒáá·áº ááááºážáááºážáá¬ážáááº)á ááŸááááºážá
áœá²á
áá¬ážááŸááºáá»á¬ážááᯠááŒááºáááºáááºááŸááºáá¬ážááŒá®ážá á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡á¬áž á
áá¬ážááŸááºááŒááºáááºááá°áá±ážáá±á¬ááºááŸáá
áºááá·áº á
áá¬ážááŸááºá¡áá
áºáá
áºáá¯áááºááŸááºááẠáá±á¬ááºážááá¯áá¬ážáááºá HTTPS áá±á«áºááŸá git.php.net ááŸáá·áº svn.php.net ááá¯ááŸá±á¬ááºááŸá¯áá»á¬ážááᯠMD5 hash ááŸáá·áº áá»áááºáááºáá¬ážáá±á¬ááŒá±á¬áá·áº git.php.net ááŸáá·áº svn.php.net ááᯠread-only mode ááœááºáá¬ážááẠáá¯á¶ážááŒááºáá²á·ááŒá®áž áááºážááá¯á·ááŸá áá»ááºááŸááá±á¬ PECL extension repositories á¡á¬ážáá¯á¶ážááᯠGitHub ááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááœá¬ážáááºááŒá
áºááŒá®áž áááºá PHP repository ááŸáá·áº áááºáá°áááºá
source: opennet.ru
