Home Backend Development PHP Tutorial Using Smart Architecture in PHP_PHP Tutorial

Using Smart Architecture in PHP_PHP Tutorial

Jul 21, 2016 pm 04:04 PM
php but Architecture use exist I article time of

I've wanted to write this article for a long time, but never had the time. This is not intended to tell you how to do it, I hope it can shed some light on how to develop a good, scalable web application.

I have been engaged in development for 2-3 years. Looking back at the programs I first made, I really don’t believe that I wrote them myself. Now my web development skills have been greatly improved, such as sourceForge (http://sourceforge.net/) is one of my more mature works. The code is divided into various classes and functions. The structure of the database is also very clear. Different parts of the site are independent from other parts.

But this site is not perfect. If I have to write it again, I will make the HTML layer and database layer more clearly distinguished through objects or function libraries.

I have found that many managers like to express their ideas in the form of charts, and I will also provide one here. The idea of ​​this system is to separate your logic from the surface layer, which means that anything complex will be pushed down to the "API/data access layer".

For security check, update and other codes, you'd better not put them in the HTML layer. You should put these theoretical codes in the API layer. The HTML layer will just make simple function calls and return arrays, objects, or my favorite, database result sets.

In this diagram, the HTML interface either directly calls the API layer, or calls an HTML tool library (such as generating pop-up windows, etc.), and those libraries can call the database through a database abstraction layer (so you don’t have to bind fixed on some kind of database).

Basic points
For a smart system, there are the following basic points:
1. Database independent
2. Presentation layer independent
3. Easy to modify
4. Object-oriented or at least split into function library calls
These are what I think of. In addition to the above mentioned, there must be other points, you can put them forward in the forum.

Let us discuss the above points in detail:

1. Database independence
When you are designing, you may not know how much burden your site will have. Therefore, you should remember that it cannot be bound to a lightweight database, such as MS Access or others. Therefore, you should consider scalability. If you change the database, you do not need to make too many changes, or even make any changes. This is ideal.

When using PHP, the function calls for various databases are different, and you need to code differently for the database you use. To change this situation, you can use a database abstraction layer such as PHPLib or a library developed by others.
2. Presentation layer independence
If you want to develop a really large and complex application, you have to start thinking about database interface issues, so that you can save a lot of copy and paste work. For example, you need to make your site WAP-enabled so that mobile phone users can access it. If your application is well designed, you only need to write a lightweight WAP presentation layer to call all your database access objects. However, if your application system is not well designed, you may need to rewrite it, so that You need to maintain an HTML version and a WAP version at the same time.

For example, when developing the SourceForge site, we had a large number of users submitting their bugs and tasks. Initially we designed it to be all done through the web interface. Later, under pressure from some people, we decided to use XML interface to display the database. We successfully separated the core logic of the site from the presentation layer. Currently, bug tracking and other tools on SourceForge use two different libraries - the HTML library class and the database class. The data class is responsible for checking whether the input value is valid and handling security detection, while the presentation layer just returns true or false based on success/failure. To simplify, this example will not be based on a perfect object model while I have to explain the base classes and how other objects extend these base classes. But I think this example can help you establish some concepts.

Example of HTML class

//Connect to database
require ("database.php");

//Commonly used HTML header/footer
require ("html.php");

//Data access library class
require ("bug_data.php");

echo site_header("Page Title");

echo "
Updating A Bug


";

if (bug_data_update($field1,$field2,$field3)) {

echo "

Update Failed!
";

} else {

echo "
Updated Bug Successfully
";
/ /show global error string
echo $feedback;
}

echo site_footer();

?>

Example Data Access Lib

/**
* Controls a bug in the update database
* Checks data validity and security, and returns true when successful,
* returns false when failed
*
*
*/

function bug_data_update ($field1,$field2,$field3) {
//Global string, return error
global $feedback;

//$field1 and $field2 are required
if (!$field1 || !$field2) {
$feedback="Field 1 And Field 2 Are Required";
return false;
}

//Confirm that the user has the right to update
if (!user_isadmin()) {
$feedback="You Must Be An Admin To Update a Bug";
return false;
}

//The bug can now be updated

$result=db_query("UPDATE bug ".
"SET field2='$field2',".
"field3='$field3' ".
"WHERE id='$field1'");

//Now check whether your statement is executed successfully
if (!$result) {
//update failed
return false;
} else {
return true;
}
}

?>
3. Easy to modify
Of course you won't use absolute URLs throughout the entire application, but I would go one step further. The choice of colors, element names, fonts, and other possible options should not be absolute at best, they should be in Set it in a configuration file and include that file on every page. The style of the site should also be self-contained - so you don't have to copy and paste it on every page, I usually put the HTML in a function that can then be called when needed.

Database passwords, database connections, etc. are also placed in the database abstraction layer.

4. Object Oriented/Functional
We can split process processing into different function calls. Each call does one thing, and sometimes you just need to call other functions and return the results.

A good example is checking in every page whether a user is logged in. If you don't use objects or functions, when your authentication system changes, you have to make changes on each page, rather than just changing a function call in the library. Before you write a piece of code, think about it. If it is going to be used more than once in the site, you will have to move it to a library. Anything to add?
I'm sure there are some things I haven't thought of, so please give me your thoughts. In particular, you have written a large and complex application. I would like to know what kind of system you would build and what changes you would make if you had to write it again.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/315828.htmlTechArticleI have wanted to write this article for a long time, but I have never had the time. This is not to tell you how to do it, I hope it can give you some advice and discuss with you how to develop a...
Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1671
14
PHP Tutorial
1276
29
C# Tutorial
1256
24
PHP vs. Python: Understanding the Differences PHP vs. Python: Understanding the Differences Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP: A Key Language for Web Development PHP: A Key Language for Web Development Apr 13, 2025 am 12:08 AM

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

The Enduring Relevance of PHP: Is It Still Alive? The Enduring Relevance of PHP: Is It Still Alive? Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

PHP and Python: Different Paradigms Explained PHP and Python: Different Paradigms Explained Apr 18, 2025 am 12:26 AM

PHP is mainly procedural programming, but also supports object-oriented programming (OOP); Python supports a variety of paradigms, including OOP, functional and procedural programming. PHP is suitable for web development, and Python is suitable for a variety of applications such as data analysis and machine learning.

PHP vs. Other Languages: A Comparison PHP vs. Other Languages: A Comparison Apr 13, 2025 am 12:19 AM

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

See all articles