What should I pay attention to when learning PHP?

Source: Internet
Author: User
Tags coding standards php coding standards php framework
What should I pay attention to when learning PHP?

You should have read php The Right Way. This article contains a lot of content and can be expanded. You need to understand most terms and concepts.

1. PSR

The idea behind the group is for project representatives to talk about the commonalities between our projects and find ways we can work together.

In my previous articles and communication with colleagues, I have mentioned this issue many times (PHP Standard Recommendation ). Many people think that this is only a matter of standardizing the code style, but it is far more than that.

A series of standard documents of this report are drafted and voted on by php-fig (PHP Framework Interop Group). the voting members include authors of mainstream frameworks and extensions, including Laravel, Symfony, and Yii.

According to the official website, the purpose of this organization is not to tell you how to do it, but to negotiate and agree between some mainstream frameworks. But I believe that these frameworks and extensions will always be used by you.

A total of 6 documents are currently passed by the DSRs:

0: automatic loading (mainly for versions without namespaces before PHP 5.3)

1: Coding Specification

2: recommended encoding styles

3: Log results

4: automatic loading is more refined (there is a big change in the namespace)

7: HTTP Message Interface

Currently in drafting (Draft) there are PSR-5 (PHPDoc Standard), PSR-6 (Cache) and so on. 5 and 6 are not displayed in the above list because they have not passed the vote.

I believe that with the constant update of standards, you will find that studying these conventions is also very beneficial to you, although it may not always follow everything.

Nobody in the group wants to tell you, as a programmer, how to build your application.

2. Composer

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

Composer is different from Pear and Pecl. it is not only used to install extensions, but also defines a modern PHP framework implementation and extension management method. Similar to node. js npm, Python pip, but more than above.

The core of composer is to implement standard extension installation and automatic class loading. Through packagist.org, numerous extension components can be easily introduced. Currently, many well-known PHP extensions can be installed through composer. The call only requires loading an autoload. php file.

Composer registers an automatic loading method through the spl_autoload_register method to load extension classes and files. of course, composer has also made an optimization.

We all know that the introduction of PHP files should be implemented through include and require, which is not very well written. PHP 5.3 provides namespaces, which are irrelevant to file introduction. But composer implements the PSR-4 (in the old version of PHP is the PSR-0), using use by calling the spl_autoload_register implementation method to load the required class during the call, similar to the Python import, the appearance also plays the role of loading on demand and loading delay.

3. php-cs-fixer

The PHP Coding Standards Fixer tool fixes most issues in your code when you want to follow the PHP coding standards as defined in the PSR-1 and PSR-2 documents.

The role of this tool is to format your code according to PSR-1 and PSR-2 specifications, and there are some optional encoding styles that are Symfony specifications.

In fact, this is not so worth mentioning, but recently I have seen the. php_cs file in several open-source frameworks. I was curious to find this project.

Project address: https://github.com/FriendsOfPHP/PHP-CS-Fixer

The specific usage and configuration methods are described on the project homepage. The organization name is also interesting: FriendsOfPHP. The main member is probably from the Symfony project.

Some people may think that the tangle of code style is not necessary. If you think programming is more than just a job, it's just like packing up your room. the dirty room doesn't affect your meals and sleep, but the clean looks more comfortable. If you want to work with others, this is even more important.

4. PsySH

A runtime developer console, interactive debugger and REPL for PHP.

PsySH is similar to the Python IDLE's PHP interactive runtime environment. This is what I found in Laravel. Laravel 5's artisan tinker function is implemented through it. Laravel 4 uses another project: boris.

This is easy to use when testing some simple php functions and features. You can use empty for some uncertain tasks, such as the use of empty.

5. some frameworks and components

Framework

I prefer Laravel. Currently, the company is using Yii2. I am concerned with Symfony and Phalcon (implemented in C ). I don't need to use anything, but I like it. sometimes I can't choose it myself. but I have to study it for a better understanding.

Many people will immediately think of Ruby on Rails when talking about Laravel. I want to imitate or plagiarize this is not the main purpose, the main purpose is to provide developers with a better tool. Laravel has a different routing control (without the Action suffix or prefix), a good ORM (Eloquent), and a good template engine (Blade) or there is a document with a relatively high face value (if the community sees it.

Sometimes it will be criticized for its strength, but it is because you need to understand the long-term planning of your project, the current size of the project, and the future size and bearing capacity.

The core implementation of Larval is a Container and the ReflectionClass (Yii 2) of PHP ). To understand this, you can also look at the source code while reading articles and documents.

Symfony 2 provides many components. Http-kernel and http-foundation are also inherited and used directly in Laravel. It is worth understanding and learning.

CodeIgniter is a small and powerful framework. Although CI does not use the Composer component for development, versions later than 3.0 have also added support for Composer (this is nothing more than a vendor Directory, introducing autoload. php files.

ORM

ORM or Active Record. Some people may think that PHP is a template engine and should write SQL. Do not be troubled by these words.

The implementation of Active Record in CodeIgniter is lightweight, but it is very useful for the CI itself.

I like the Eloquent implemented by Laravel. It can also be integrated into other projects. Symfony 2 uses Doctrine, which deserves attention. Yii 2 also has its own implementation method.

Template engine

The template engine needs to do three things:

1. output of variable values (echo ),

2. conditional judgment and loop (if... else, for, foreach, while)

3. import or inherit from other files

The Blade implemented by Laravel is a lightweight and easy-to-use template engine. However, it is not very good to introduce it to other frameworks. During the 11th, I tried to introduce it to Yii 2. now it is just a simple implementation. I hope that the parsing part of Blade will be extracted separately for a lightweight implementation. I found someone doing the same thing on Github.

Yii 2 seems to recommend writing with native PHP, but it also provides support for extensions of Smarty and Twig. Symfony 2 uses Twig. Twig, Symfony, and the php-cd-fixer mentioned above are both SensioLabs works.

Smarty is an old and tenacious template engine. To be honest, I don't like it too much. Its syntax is too complicated. the assignment of variables has its own practice. In the current version, Lexer is used to parse files. it seems that PHP is used to implement another language. There are some too long regular expressions and complicated implementations in the project. I think this is a very dangerous and easy to make mistakes. More related PHP information http://www.kokojia.com/list/219.html


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.