1.Tài liệu cơ bản
Là người bắt đầu vào nghề, điều đầu tiên cũng là tìm một cuốn tài liệu đọc và học nhưng đại ca google thì làm cho chúng ta ngập ngụa, tài liệu thì nhiều nhưng sự gợi ý là vào thẳng thằng này PHP manual. hoặc W3schools.com2. Bật chức năng kiểm tra lỗi
Error reporting in PHP cái này không bao giờ thừa, vì một người lập trình giỏi đến mức nào cũng không tránh khỏi lỗi và nếu là người luôn xác định được lỗi của mình trong từng dòng code thì sẽ thế nào.
3. Thực hành trên IDE
IDE’s (Integrated Development Environments) môi trường lập trình khá hữu dụng với các tính năng- syntax highlighting ( đánh dấu cú pháp)
- code completion ( biên dịch mã)
- error warnings ( cảnh bảo lỗi
- refactoring (reworking)
4. Sử dụng PHP Framework
Đại diện CakePHP hoặc CodeIgniter , nhưng điều này không khuyến khích các bạn, mà chỉ nên tham khảo. Nếu không muốn thành một code script.5. Tiếp cận DRY Approach
DRY được xem là Don’t Repeat Yourself, được xem à tạo cho chúng ta một kỹ năng tốt trong lập trình hay theo Reinhold Weber:- $mysql = mysql_connect('localhost', 'reinhold', 'secret_hash');
- mysql_select_db('wordpress') or die("cannot select DB");
- $db_host = 'localhost';
- $db_user = 'reinhold';
- $db_password = 'secret_hash';
- $db_database = 'wordpress';
- $mysql = mysql_connect($db_host, $db_user, $db_password);
- mysql_select_db($db_database);
6. Thể hiện code
Thể hiện dòng code theo đúng tư tưởng của mình và tìm đọc những đoạn code của những pro bạn sẽ thấy được sự khác biệt, người có tư tưởng thoáng và tư duy hay thích cái đẹp thì những dòng code thể hiện ra làm cho người đọc dễ xác minh. Cũng không khác mấy so với người viết đẹp và viết xấu. Hãy sử dụng thành thao các dấu {} và backspace7. “Lớp ”cho code
Đơn giản là xấy dựng các lớp cho code hay lập trình theo lớp như how to tier your PHP applications
8. Sử dụng <?php ?>
- <?
- echo "Hello world";
- ?>
- <?="Hello world"; ?>
- <% echo "Hello world"; %>
9. Cách đặt tên
Tên đẹp người chưa chắc đã đẹp nhưng luôn tạo ấn tượng. Hãy sử dụng tên cho biến, lớp, hàm dễ gợi nhớ.10. Chú thích
Đi đến đâu để lại dấu vết ở đó, hãy chú thích cho đoạn code quan trọng.11. Cài MAMP/WAMP
Dùng server ảo MAMP (Mac) hay WAMP (Windows). Cài đặt Mysql hoặc một số đã có PhpMyadmin cũng rất tiện để chạy thử code.12.Thời gian thực thi code
Để xác định một khoảng thời gian nào đó để thực thi hết số code mình taọ ra thì hãy tham khảo set_time_limitThường thì mình để set_time_limit(0) đê cho chạy thoải mái code.
13. Lập trình hướng đối tượng (hay OOP)
Object-oriented programming (OOP)cơ bản là đây object-oriented programming with PHP. Nhưng mới vào mà học cái này thì nản luôn, dễ có dễ mà khó thì bình thường :)14. Chú thích /**/ hay //
Mình thì thích dùng /**/ nó đẹp hơn và dễ nhìn hơn, đi đến đâu quan trọng thì để lại chú thích (comment) vì sau một dự án hay chỉ cần 1MB code cũng đủ hoa mắt.
15.Không nên đặt php info() đầu file
phpinfor() chỉ khi nào test thì dùng còn thường thì chẳng bao giờ mình dùng, nó cung không đẹp cho code và php nâng cấp liên tằng tằng do vậy phương án là tạo riêng một file check đủ mọi thứ :server, version
- <?php phpinfo(); ?>
16.Đừng bao giờ tin tưởng người dùng của bạn
Bạn có chắc rằng người dùng của bạn là những người đáng tin hay kèm theo hacker phá phách thì mệt đó hãy chứng thực mọi thứ liên quan đến CSDL
- <?php
- if (correct_user($_POST['user'], $_POST['password']) {
- $login = true;
- }
- if ($login) {
- forward_to_secure_environment();
- }
- ?>
17. Lưu trữ mật khẩu dạng mã hóa
Trong PHP cũng có khá nhiều hàm mã hóa có thể giúp mật khẩu hay thông tin được lưu trữ tạm an toàn.18. Use Database Visualization Design Tools
If you’re finding it difficult to plan and modify databases for your PHP applications, you might look into using a database visualization tool. MySQL users can work with DBDesigner and MySQL Workbench to visually design your databases.19. Use Output Buffering
Output buffering is a simple way to greatly improve the performance and speed of your PHP script. Without output buffering, your script will show the HTML on the page as it’s processed – in pieces. Adding output buffering allows the PHP to store the HTML as a variable and send it to the browser in one chunk.To enable output buffering, simply add ob_start() like so at the top of the file.
Rebuttal: Though not required, it’s generally considered to be a good practice to go ahead and append the “ob_end_flush();” function as well to the bottom of the document. P.S. Want to compress the HTML as well? Simply replace “ob_start();” with “ob_start(‘ob_gzhandler’)”;
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(); ?>
20. Protect your Script From SQL Injection
If you don’t escape your characters used in SQL strings, your code is vulnerable to SQL injections. You can avoid this by either using the mysql_real_escape_string, or by using prepared statements.Here’s an example of mysql_real_escape_string in action:
- $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 inputted data directly into our query. Instead, we use the “bind_param” method to bind the values (and escaping) to the query. Much safer, and, notably, faster when executing multiple CRUD statements at once.Read more on creating secure PHP applications at Nettuts.
21. Try ORM
If you’re writing object-oriented PHP, then you can use the nifty object relational mapping (ORM). ORM allows you to convert data between relational databases and object-oriented programming languages. In short: ORM allows you to work with databases the same way that you work with classes and objects in PHP.There are plenty of ORM libraries for PHP like Propel, and ORM is built into PHP frameworks like CakePHP.
22. Cache Database-Driven Pages
Caching database-driven PHP pages is an excellent idea to improve the load and performance of your script. It’s really not all that difficult to create and retrieve static files of content with the help of our good friend ob_start(). Here’s an example taken from Snipe.net:- // 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
23. Use a Caching System
If you’re wanting a more robust caching system, there are a few caching scripts for PHP that might be more complete than the above example.24. Validate Cookie Data
Cookie data, like any data passed on the Web, can be harmful. You can validate cookie data with either the htmlspecialchars() or mysql_real_escape_string().25. Use Static File Caching Systems
Aside from using database caching systems like Memcached, you might also want to try a templating system to increase performance in your PHP applications. Smarty is a robust templating system has caching built into it.26. Profile your Code
Profiling your code with a tool like xdebug can help you to quickly spot bottlenecks and other potential problems in your PHP code. Some IDEs like Netbeans have PHP profiling capabilities as well.27. Code to a Standard
Once you’ve gotten the ropes of PHP down, you can start learning about coding to a standard. There are differences between standards out there (say Zend and Pear), and finding one and sticking with it will help with the consistency of your coding in the long run.28. Keep Functions Outside of Loops
You take a hit of performance when you include functions inside of loops. The larger the loop that you have, the longer the execution time will take. Take the extra time and line of code and place the function outside of the loop.
Editor’s Note: Think of it this way. Try to remove as many operations from the loop as possible. Do you really need to create that variable for every iteration of the loop? Do you really need to create the function each time? Of course not.
29. Don’t Copy Extra Variables
Some people like to try and make their code more appealing by copying predefined variables to smaller-named variables. This is redundant and could potentially double the memory of your script. Google Code has bad and good examples of variable usage:Bad
- $description = strip_tags($_POST['description']);
- echo $description;
- echo strip_tags($_POST['description']);
Rebuttal: In reference to the comment about “doubling the memory,” this actually is a common misconception. PHP implements “copy-on-write” memory management. This basically means that you can assign a value to as many variables as you like without having to worry about the data actually being copied. While it’s arguable that the “Good” example exemplified above might make for cleaner code, I highly doubt that it’s any quicker.
30. Upgrade to the Latest Version of PHP
While it seems like a common sense thing, many people don’t upgrade PHP as often as they should. There are lots of performance increases between PHP 4 and PHP 5. Check your server to make sure you’re up to date.31. Reduce the Number of Database Queries
Any way that you can cut back on the number of database queries, the better your PHP script will perform. There are tools like Stace (Unix) and Process Explorer (Windows) that allow you to find redundant processes and how you might combine them.32. Don’t be Afraid to Ask for Help
It’s only human nature to want to hide the fact that we don’t know much about a certain topic. Nobody likes being a n00b! But how are we going to learn without asking? Feel free to use forums, IRC, StackOverflow to ask more seasoned PHP developers questions. The PHP website has a page on getting PHP help.Have any rebuttals of your own? I’m sure you do! Let’s start the debate.
- Follow us on Twitter, or subscribe to the NETTUTS RSS Feed for more daily web development tuts and articles.
No comments:
Post a Comment