初心者向けのPHP 30本のベストプラクティス(荒野無灯)

6235 ワード

1、PHPマニュアルと仲良くなりました。2、Error Reporting Errar reportingを開いてPHPの開発に役立ちます。コードの中で以前に発見されていないエラーを発見できます。すべてのBUGがプログラムを実行できないわけではないからです。製品が正式に使用されている時には、エラーレポートを消す必要があります。でないと、お客さんは変な文字の山を見て、それがどういう意味なのか分かりません。3,IDE IDEを使うことは開発者にとって有用なツールです。荒野はここでnetbeans IDEをオススメします。4.PHPフレームを使ってみてください。DRY方法を学ぶDRYはDon't Repeat Yourselfを表します。どんな言語でも価値のあるプログラミング概念です。DRYプログラミングは、名前の通り、余分なコードを書かないようにすることです。6.スペースインデントコードを使って読み取り可能性を向上させます。7.「Tier」your Codeから与えられたアプリケーションの階層は、異なる部位の異なる構成部分のコードに分けられます。これはあなたのコードを未来に簡単に変えることができます。よく使うMVCモードのようです。8.いつも使っていますphp9.意味のあるネーミングを使用して10.コメント、コメント11.MAMP/WAMP 12をインストールします。あなたへのシナリオの制限運行時間は通常PHPスクリプトの運行時間は30秒に制限されています。この時間を過ぎるとPHPは致命的なエラーを投げます。13.OOP 14を使用して、ダブルクォーテーションとシングルクォーテーションマークの違いを知っています。ウェブサイトのルートディレクトリにphpinfoを入れないでください。16.いつまでもあなたのユーザーを信用しないでください。暗号化メモリパスワードRebuttal:Keep in mind,however,that MD 5 hashes have long since been compone promised.They"hackers can cross reference your hash.To add even more security,consider adding a salt a s well.A salt is baically an additional set of characters that you apped the user's string.18.データベースデザインツールを使用してDBQbuner 19やDequenlなどを出力します。it's generaally consided to be a good practice to go aead and apped the「ob_end_flush();function as well to the bottom of the document.P.S.Want to compress the HTML well?Simply replace"ob_スタートwith「ob_」startgzhandler";Refer to this Dev-tips article for more information.
 
<!DOCTYPE html>
<?php ob_start('ob_gzhandler'); ?>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
</head>
<body>

</body>
</html>
<?php ob_end_flush(); ?>
.SQL注射
 
$username = mysql_real_escape_string( $GET['username'] );
  $id = $_GET['id'];
$statement = $connection->prepare( "SELECT * FROM tbl_members WHERE id = ?" );
$statement->bind_param( "i", $id );
$statement->execute();
By using prepared statements,we never embed the user's inputed darectly into query.Instead,we bitparam"method to bind the values(and escaping)to the query.Mush safer,and,notably,faster when executing multing CRUD statement.21.ORM(oject relational mapping)ORMを試します。and ORM is built into PHP fram eworks like Cake PHP.22.キャッシュデータベースドライバページ例えば:
 
// TOP of your script
$cachefile = 'cache/'.basename($_SERVER['SCRIPT_URI']);
$cachetime = 120 * 60; // 2 hours
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && (time() - $cachetime < filemtime($cachefile))) {
include($cachefile);
echo "<!-- Cached ".date('jS F Y H:i', filemtime($cachefile))." -->";
exit;
}
ob_start(); // start the output buffer
// Your normal PHP script and HTML content here
// BOTTOM of your script
$fp = fopen($cachefile, 'w'); // open the cache file for writing
fwrite($fp, ob_get_contents()); // save the contents of output buffer to the file
fclose($fp); // close the file
ob_end_flush(); // Send the output to the browser
.キャッシュシステムを使用する
Memcached
APC
XCache
Zend Cache
eAccellerator 24.CookieデータCookie data、like any data passed on the Web、can be harmful.You can validate cookie data with ether the htmlspecialchars()or mysql_リアル.エスケープstring().25.Smartyなどの静的ファイルキャッシュシステムを使用するのは、キャッシュを内蔵する強力なテンプレートシステムである。26.あなたのコードProfiling your code with a tool like xdebug can help you to quickly spot bottlenecks and other potentic problems in your PHP code.Some IDEs Netbeans have PHP profiling capabilitys.Pell.標準コードのようです。28.Keep Funtions Outside of Loops You take a hite of performance when you include functions inside of loops.The larger the loop that you have,the longer the execution time will tare.Take the extra time and line of code and place the function out side of the loop.Editor's Note:Think of it this way.Try to remove asy operation the loop the loopable.able。Dou really need to create the function each time?Of course not.29.余分な変数をコピーしないでください。例えば:
 
$description = strip_tags($_POST['description']);
echo $description;
は次のように書くことができます。echo strip_tags($u)POST['description]]Rebuttal:In reference to the commment about「doubling the memory」"this actually is a comon misconception.PHP implemens"copy-on-write"memorymamorymamanagement.Thisbaicalalallymeans that can can s a value to variables s s s s s s s s s s Likewiththout havit havit havito woryaaaababababababababatheaaaaaaaatototototototosasasasasasasasasasasasasasasasasasasasasasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaクリーンコード、I highly doub t that it's any quicker.つまりPHPは「copy-on-write」のメモリ管理方式を実現し、上の第一のコードは二倍メモリを占有することはありません。そのため、Rebuttalは第二の方式のコードが本当に前より速いかどうかをひどく疑っています。30.最新バージョンに更新したPHP 31.データベースの検索回数を減らす32.勇敢に質問するStockOverflowなどはいいところです。