search
HomeBackend DevelopmentPHP TutorialEssential PHP development tools Introduction to PHP continuous integration tools (Part 1)_PHP tutorial

Essential PHP development tools Introduction to PHP continuous integration tools (Part 1)_PHP tutorial

Jul 20, 2016 am 10:56 AM
phpsuperiorintroduceexistWilltooldevelopEssentialofat presentsoftware engineeringintegrated

In this article, we will introduce the continuous integration concept that is often used in current software engineering, and also introduce how to make good use of PHP in PHP development There are currently some open source continuous integration management tools to manage projects well.

The concept of continuous integration

The concept of continuous integration was proposed in modern software engineering. It was first seen in agile development methodologies. Master Martin Fowler said this about continuous integration Definition: Continuous integration is a software development practice in which team development members integrate their work frequently, usually each member integrates at least once a day, which means that integration may occur multiple times a day. Each integration is verified through automated builds (including compilation, release, and automated testing) to detect integration errors as quickly as possible. Many teams find that this process can greatly reduce integration issues, allowing the team to develop cohesive software faster.

The following introduces the continuous integration tools in PHP:

PHPUNIT

First of all, PHPUNIT is a unit testing tool in PHP , the project address is: http://www.phpunit.it. It

can automatically run the unit test code you wrote and give a pass or fail result. The installation steps are as follows. You can use PEAR in PHP to install:

<ol class="dp-c">
<li class="alt"><span><span>sudo apt-get install php5-curl php-pear php5-dev  </span></span></li>
<li><span>sudo pear upgrade pear  </span></li>
<li class="alt"><span>sudo pear channel-discover pear.phpunit.de  </span></li>
<li><span>sudo pear channel-discover components.ez.no  </span></li>
<li class="alt"><span>sudo pear channel-discover pear.symfony-project.com  </span></li>
<li><span>sudo pear install phpunit/PHPUnit </span></li>
</ol>

. After that, you can execute phpunit on the command line in the following format:

Phpunit unit test php file name. php

In addition, you can also execute the following command to generate a unit test coverage report:

phpunit --coverage-html ../CodeCoverage

This will be in the specified directory Generate a unit test coverage report in the directory CodeCoverage. For example, in this example, the unit test coverage report will be generated in the directory CodeCoverage, as shown below:

Introduction to PHP continuous integration tools necessary for PHP development (Part 1)
▲Click to see the larger image

If you click on each PHP file in the picture above, you can also see each one in detail The unit test coverage of the file is as shown below:

Introduction to PHP continuous integration tools necessary for PHP development (Part 1)
▲Click to see the larger picture

From the picture above, you can see the unit test coverage of the method called in each PHP file, and you can also see which lines of code have been unitized The tests have been covered and which ones have not been covered (green means it has been covered, orange means it has not been covered), as shown below:

Introduction to PHP continuous integration tools necessary for PHP development (Part 1)
▲Click to see the larger image

PHP CodeSniffer

PHP CodeSniffer is a PHP The code style detector checks the code style in the application based on the preset PHP coding style and rules. It has built-in coding style rules for ZEND and PEAR. Of course, developers can also customize it. The address of the project is: http://pear.php.net/package/PHP_CodeSniffer/redirected. The installation method is as follows:

<ol class="dp-c">
<li class="alt"><span><span>sudo pear install PHP_CodeSniffer  </span></span></li>
<li><span>phpcs --standard=Zend c:phpcode </span></li>
</ol>

After phpcs –standard, it is specified to use Zend’s recommended code style standard for checking. , the last parameter is the directory where the PHP file to be checked is located. After running, a rendering of the check is shown below:

PHP CodeSniffer
▲Click View large image

PHP Depend

PHP Depend (http://pdepend.org/) is a tool for static code analysis in PHP. It can be used to check the size and complexity of the code in your PHP project. The installation method is as follows:

<ol class="dp-c">
<li class="alt"><span><span>sudo pear channel-discover pear.pdepend.org  </span></span></li>
<li><span>sudo pear install pdepend/PHP_Depend-beta </span></li>
</ol>

An example used is as follows:

pdepend --jdepend-xml=../jdepend.xml --jdepend-chart=../dependencies.svg --overview-pyramid=../overview-pyramid.svg

The above will generate an XML file and two SVG graphic files. The XML file describes the interdependent calls (references) of each PHP file in the project and the code lines of each method, function, and class. An example is as follows:

<ol class="dp-c">
<li class="alt"><span><span><?xml  version=&rdquo;1.0&rdquo; encoding=&rdquo;UTF-8&rdquo;?>  </span></span></li>
<li><span><metrics>  </metrics></span></li>
<li class="alt"><span><package><span class="keyword">global</span><span>” noc=”17” nof=”0” noi=”0” nom=”237”>  </span></package></span></li>
<li><span><span class="keyword">class</span><span> name=”data_container”nom=”55”>  </span></span></li>
<li class="alt"><span><file><span class="keyword">case</span><span>-study/libs/data/container.php”/>  </span></file></span></li>
<li>
<span></span><span class="keyword">class</span><span>>  </span>
</li>
<li class="alt"><span><span class="keyword">class</span><span> name=”data_download” nom=”10”>  </span></span></li>
<li><span><file><span class="keyword">case</span><span>-study/libs/data/download.php”/>  </span></file></span></li>
<li class="alt">
<span></span><span class="keyword">class</span><span>> </span>
</li>
</ol>

The meaning of noc is class The running script of the code, nof is the number of lines of code for the function, noi is the number of lines of interface code, and nom is the number of lines of method code.

Next let’s take a look at the generated SVG image, which is as follows:

PHP CodeSniffer

This picture reflects the dependency measurement of packages in the project. The basic theory comes from the measurement of module dependency and stability in software introduced in Robert C. Martin's paper (http://www.objectmentor.com/resources/articles/oodmetrc.pdf). Among them, the following concepts are mentioned:

Afferent Couplings (Ca)

The number of other packages that depend on the analyzed package is used to measure the responsibility of the pacakge.

Simply put, how many other packages or modules call the analyzed package or module.

Efferent Couplings (Ce)

The number of other packages that the analyzed package class depends on, used to measure the independence of the package.

That is, how many other packages it calls.

Abstractness (A)

The ratio of the abstract classes and interfaces in the analyzed package to the number of all classes in the package, the value range is 0-1. If the value is 0, it proves that there are no abstract classes in the package, and there are only classes that implement logical methods. If the value is 1, there are only abstract classes or interfaces in the package

Instability ( I)

I=Ce/(Ce+Ca), used to measure the instability of the package, with a value ranging from 0 to 1. I=0 means the most stable, I=1 means the least stable.

Distance (D)

is used to measure the balance between stability and abstraction of the package. It can be seen that the ideal situation is for A+I to be closer to 1, which can achieve the best balance of abstraction and stability.

In addition, introduce the meaning of another picture generated in php depend. The picture is as follows:

PHP CodeSniffer

In this picture, the top ANDC represents the average number of inherited other classes, that is, how many classes in the project inherit other classes; AHH is the number of levels of inherited other classes. CALLS is the total number of times the method is called, and FANOUT is the number of types referenced by the class. CYCLO is cyclomatic complexity (for analysis of cyclomatic complexity, please refer to (http://en.wikipedia.org/wiki/Cyclomatic_complexity)). LOC is the number of lines of code, NOM is the number of methods in the project, and NOC is the project The number of classes, NOP is the number of packages in the project.

Relevant data can be calculated according to the division rules indicated in the figure above. For more information, please refer to the php depend manual (http://pdepend. org/documentation/handbook/reports/overview-pyramid.html) detailed analysis.

http://www.bkjia.com/PHPjc/445818.htmlwww.bkjia.com
true

http: //www.bkjia.com/PHPjc/445818.htmlTechArticleIn this article, we will introduce the concept of continuous integration that is often used in current software engineering, and will introduce how to use it in PHP During development, how to make good use of some of PHP’s current open source continuous integration management tools...
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
PHP: An Introduction to the Server-Side Scripting LanguagePHP: An Introduction to the Server-Side Scripting LanguageApr 16, 2025 am 12:18 AM

PHP is a server-side scripting language used for dynamic web development and server-side applications. 1.PHP is an interpreted language that does not require compilation and is suitable for rapid development. 2. PHP code is embedded in HTML, making it easy to develop web pages. 3. PHP processes server-side logic, generates HTML output, and supports user interaction and data processing. 4. PHP can interact with the database, process form submission, and execute server-side tasks.

PHP and the Web: Exploring its Long-Term ImpactPHP and the Web: Exploring its Long-Term ImpactApr 16, 2025 am 12:17 AM

PHP has shaped the network over the past few decades and will continue to play an important role in web development. 1) PHP originated in 1994 and has become the first choice for developers due to its ease of use and seamless integration with MySQL. 2) Its core functions include generating dynamic content and integrating with the database, allowing the website to be updated in real time and displayed in personalized manner. 3) The wide application and ecosystem of PHP have driven its long-term impact, but it also faces version updates and security challenges. 4) Performance improvements in recent years, such as the release of PHP7, enable it to compete with modern languages. 5) In the future, PHP needs to deal with new challenges such as containerization and microservices, but its flexibility and active community make it adaptable.

Why Use PHP? Advantages and Benefits ExplainedWhy Use PHP? Advantages and Benefits ExplainedApr 16, 2025 am 12:16 AM

The core benefits of PHP include ease of learning, strong web development support, rich libraries and frameworks, high performance and scalability, cross-platform compatibility, and cost-effectiveness. 1) Easy to learn and use, suitable for beginners; 2) Good integration with web servers and supports multiple databases; 3) Have powerful frameworks such as Laravel; 4) High performance can be achieved through optimization; 5) Support multiple operating systems; 6) Open source to reduce development costs.

Debunking the Myths: Is PHP Really a Dead Language?Debunking the Myths: Is PHP Really a Dead Language?Apr 16, 2025 am 12:15 AM

PHP is not dead. 1) The PHP community actively solves performance and security issues, and PHP7.x improves performance. 2) PHP is suitable for modern web development and is widely used in large websites. 3) PHP is easy to learn and the server performs well, but the type system is not as strict as static languages. 4) PHP is still important in the fields of content management and e-commerce, and the ecosystem continues to evolve. 5) Optimize performance through OPcache and APC, and use OOP and design patterns to improve code quality.

The PHP vs. Python Debate: Which is Better?The PHP vs. Python Debate: Which is Better?Apr 16, 2025 am 12:03 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on the project requirements. 1) PHP is suitable for web development, easy to learn, rich community resources, but the syntax is not modern enough, and performance and security need to be paid attention to. 2) Python is suitable for data science and machine learning, with concise syntax and easy to learn, but there are bottlenecks in execution speed and memory management.

PHP's Purpose: Building Dynamic WebsitesPHP's Purpose: Building Dynamic WebsitesApr 15, 2025 am 12:18 AM

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

PHP: Handling Databases and Server-Side LogicPHP: Handling Databases and Server-Side LogicApr 15, 2025 am 12:15 AM

PHP uses MySQLi and PDO extensions to interact in database operations and server-side logic processing, and processes server-side logic through functions such as session management. 1) Use MySQLi or PDO to connect to the database and execute SQL queries. 2) Handle HTTP requests and user status through session management and other functions. 3) Use transactions to ensure the atomicity of database operations. 4) Prevent SQL injection, use exception handling and closing connections for debugging. 5) Optimize performance through indexing and cache, write highly readable code and perform error handling.

How do you prevent SQL Injection in PHP? (Prepared statements, PDO)How do you prevent SQL Injection in PHP? (Prepared statements, PDO)Apr 15, 2025 am 12:15 AM

Using preprocessing statements and PDO in PHP can effectively prevent SQL injection attacks. 1) Use PDO to connect to the database and set the error mode. 2) Create preprocessing statements through the prepare method and pass data using placeholders and execute methods. 3) Process query results and ensure the security and performance of the code.

See all articles

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

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor