Home  >  Article  >  Backend Development  >  Summary of ten tips for PHP developers to get twice the result with half the effort_PHP Tutorial

Summary of ten tips for PHP developers to get twice the result with half the effort_PHP Tutorial

WBOY
WBOYOriginal
2016-07-21 15:38:41658browse

What would happen if you used a large mirror as a surfboard? You may be able to conquer waves in a shorter period of time, but you surely know deep down that this is not the right choice for surfing. The same principle applies to PHP programming, although the analogy may sound a little weird. We often hear of people trying to learn PHP in just over a weekend, but IMHO this is a very poor way to learn this programming language.

Why is the process of learning PHP different from any other language?
By its nature, if you master the way of "doing things" in the PHP language, you will become more comfortable using it, so it is worth the investment to understand these ways. In PHP, simply solving problems according to your own ideas is often a wrong approach. This is not because you are a bad programmer, but because there are some standard techniques you must use if you want to write good maintainable code. Let’s take a look at the top 10 tips you need to know.

1. How to correctly create the Index page of a website
When creating every website, establishing the index page of the website is one of the first things to do. If you are new to PHP, a typical approach when writing an index page is to program only the content required for the index page, and create another page for other links. However, if you want to learn a more efficient way to implement PHP programming, you can use the "index.php?page=home" mode, which is used by many websites.

2. Use Request Global Array to capture data
In fact, we have no reason to use $_GET and $_POST arrays to capture values. The global array $_REQUEST allows you to obtain a get or form request. Therefore, in most cases a more efficient code for parsing the data would look like this:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 0;

3. Use var_dump to debug PHP code
If you are looking for PHP debugging technology, I must say that var_dump should be the goal you are looking for. This command can meet all your needs when it comes to displaying php information. Most cases of debugging code are related to getting values ​​in PHP.

4. PHP handles the code logic and Smarty handles the presentation layer
Smarty is a template PHP template engine written in PHP. It is one of the most famous PHP template engines in the industry. . It separates logical code and external content, providing an easy-to-manage and use method to logically separate PHP code that is originally mixed with HTML code. Simply put, the purpose is to separate PHP programmers from front-end personnel, so that programmers change the logical content of the program without affecting the page design of the front-end personnel, and front-end personnel re-modify the page without affecting the program logic of the program. This is particularly important in projects involving multi-person collaboration.

5. When you really need to use global values, create a Config file
It is a bad practice to create global values ​​frequently, but sometimes the actual situation does require this. It's a good idea to use global values ​​for database table or database connection information, but don't use global values ​​frequently in your PHP code. Alternatively, a better approach is to store your global variables in a config.php file.

6. If it is not defined, access is prohibited!
If you create the page correctly, there is no reason for anyone else to access the index.php page outside of index.php or home.php. Once index.php is accessed, you can open the required page by obtaining the variables. Your index page should contain code similar to:
define('yourPage',1);
Then, other pages should contain:
if (!defined('yourPage')) die('Access Denied');
The purpose of this is to prevent direct access to your other php pages. In this way, anyone who tries to access other web pages without going through index.php will get an "Access Denied" message.

7. Create a database class
If you are doing database programming (a very common task in PHP), a good idea is to create a database class to handle any database management functions. The sample code is as follows:

Copy code The code is as follows:

public function dbExec($query)
{
$result = $this->db->exec($query);
if (PEAR::isError($result))
errorRedirect($result->getMessage(), true);
else
return $result;
}

This function only receives a query statement and executes it. It also handles any errors that may occur. You can also include audit code here, but I prefer to use a similar audit function:
Copy code Here is the code:

// checks if arguments given are integer values ​​not less than 0 - has multiple arguments
function sanitizeInput()
{
$numargs = func_num_args();
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
if (!is_numeric($arg_list[$i]) || $arg_list[$i] < 0)
errorRedirect("Unexpected variable value", true);
}
}

8. One php file processes the input, and one class.php file processes the input. Specific functions
An important way to avoid cluttering the code is to redirect it to other functions for processing after obtaining user input. The principle is very simple, the php file takes whatever input we need and then redirects its execution to a function in the class file. For example, suppose there is a URL like "index.php?page=profile&action=display". The URL is retrieved by profile.php and the action is "display". Then using a simple switch function, we execute the real display function:
Copy code The code is as follows:

require_once PROJECTROOT .'libs/messages.class.php';
$message = new Message();
switch ($action)
{
case 'display':
$message-> display();
break;
...

As shown above, I used a message class and then started doing the switch check. $message is just an object used by calling functions in the class.

9. Know your SQL statements and always Sanitize them
As I mentioned before, there are 99 most important parts of any PHP website % may be the database. Therefore, you need to be very familiar with how to use sql correctly. Learn association tables and more advanced techniques. Below I will show an example of a function using MySQL and review it using function #7 of this article.
Copy code The code is as follows:

private function getSentMessages($id)
{
$this-> ;util->sanitizeInput($id);
$pm_table = $GLOBALS['config']['privateMsg'];
$users = $GLOBALS['config']['users'];
$sql = "SELECT PM.*, USR.username as name_sender FROM $pm_table PM, $users USR
WHERE id_sender = '$id' AND sender_purge = FALSE AND USR.id = PM.id_receiver AND is_read = TRUE
ORDER BY date_sent DESC";
$result = $this->dbQueryAll($sql);
return $result;
}

First, we The user input is checked (passing the message id via a GET variable) and then we execute our SQL command. Pay attention to the usage of SQL here. You need to understand how to use aliases and related tables.

10. When you only need one object, use the singleton pattern
In a very common situation in PHP, we only need to create an object once, and then We use it throughout our program. A good example of this is smart variables, which once initialized can be used anywhere. A good implementation for this situation is the singleton pattern. The sample code is as follows:
Copy code The code is as follows:

function smartyObject()
{
if ($ GLOBALS['config']['SmartyObj'] == 0)
{
$smarty = new SmartyGame();
$GLOBALS['config']['SmartyObj'] = $smarty;
}
else
$smarty = $GLOBALS['config']['SmartyObj'];
return $smarty;
}

Note that we have A global smarty variable (in this example it is initialized in config.php), if its value is 0 we will create a new smarty object. Otherwise, it means that the object has already been created and we just need to return it.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/321734.htmlTechArticleWhat would happen if you used a large mirror as a surfboard? You may be able to conquer the waves in a shorter amount of time, but you surely know deep down that this is not the right choice for surfing. ...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn