Vimphp code specification

Source: Internet
Author: User
: This article mainly introduces vimphp code specifications. For more information about PHP tutorials, see. Vim code specification tool php-cs-fixer.phar
(Reference https://github.com/FriendsOfPHP/PHP-CS-Fixer)
INSTALL

curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer  sudo chmod a+x php-cs-fixer  sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

Now, you can directly format the code using php-cs-fixer.

USAGE

(Currently, the supported levels include psr0, psr1, psr2, symfony, and contrib)

  php-cs-fixer fix test.php --level=psr2   php-cs-fixer fix ./--level=psr2

This does not satisfy a vimer's small mind.

Vim-php-cs-fixer
INSTALL

Bundle 'stephpy/vim-php-cs-fixer

CONFIGURE
. Vimrc (reference: https://github.com/stephpy/vim-php-cs-fixer)

" If php-cs-fixer is in $PATH, you don't need to define line below"let g:php_cs_fixer_path = "~/php-cs-fixer.phar"" define the path to the php-cs-fixer.pharlet g:php_cs_fixer_level = "psr2"              " which level ?(psr0, psr1, psr2, symfony)let g:php_cs_fixer_config = "default"" configurationlet g:php_cs_fixer_php_path = "php"               " Path to PHP" If you want to define specific fixers:"let g:php_cs_fixer_fixers_list = "linefeed,short_tag,indentation"let g:php_cs_fixer_enable_default_mapping = 1" Enable the mapping by default (
  
   pcd)let g:php_cs_fixer_dry_run = 0                    " Call command with dry-run optionlet g:php_cs_fixer_verbose = 0" Return the output of command if 1, else an inline information.
  

We found the above configuration

let g:php_cs_fixer_enable_default_mapping = 1     " Enable the mapping by default (
  
   pcd)
  

This configuration shortcut is \ pcd. in actual operations, it will be very error-prone and too long.
. Vim/bundle/vim-php-cs-fixer/plugin/php-cs-fixer.vim

if(g:php_cs_fixer_enable_default_mapping == 1)    nnoremap 
  
   
    pcd :call PhpCsFixerFixDirectory()
    
         nnoremap 
     
      
       pcf :call PhpCsFixerFixFile()
       
        endif
       
      
     
    
   
  

We can find that
Pcd is the formatting Directory
Pcf is a format file.
Now, you can replace pcd and pcf with your favorite shortcut keys.

Ps: In nomal mode, the default prefix of a shortcut key is \. you can use the map command in vim to view

Appendix

psr0 [PSR-0] Classes must be in a path that matches their namespace, be at least one namespace deep, andtheclassname should match thefilename.encoding [PSR-1] PHP code MUST use only UTF-8without BOM (remove BOM).short_tag [PSR-1] PHP code must use the long 
   tags orthe short-echo 
   tags; it must not use the other tag variations.braces [PSR-2] The body of each structure MUST be enclosed by braces. Braces should be properly placed. Body of braces should be properly indented.elseif [PSR-2] The keyword elseif should be used instead ofelseif so that all control keywords looks like single words.eof_ending [PSR-2] A file must always endwith a single empty line feed.function_call_space [PSR-2] When making a method or function call, there MUST NOT be a spacebetweenthe method or function nameandthe opening parenthesis.function_declaration [PSR-2] Spaces should be properly placed in a function declaration.indentation [PSR-2] Code MUST use an indent of4 spaces, and MUST NOT use tabs for indenting.line_after_namespace [PSR-2] There MUST be one blank line afterthe namespace declaration.linefeed [PSR-2] All PHP files must use the Unix LF (linefeed) line ending.lowercase_constants [PSR-2] The PHP constants true, false, and null MUST be in lower case.lowercase_keywords [PSR-2] PHP keywords MUST be in lower case.method_argument_space [PSR-2] In method arguments and method call, there MUST NOT be a spacebefore each comma and there MUST be one spaceafter each comma.multiple_use [PSR-2] There MUST be one use keyword per declaration.parenthesis [PSR-2] There MUST NOT be a spaceafterthe opening parenthesis. There MUST NOT be a spacebeforethe closing parenthesis.php_closing_tag [PSR-2] The closing ?> tag MUST be omitted from files containing only PHP.single_line_after_imports [PSR-2] Each namespace use MUST go onits own line and there MUST be one blank line afterthe use statements block.trailing_spaces [PSR-2] Remove trailing whitespace attheendof non-blank lines.visibility [PSR-2] Visibility MUST be declared on all properties and methods; abstract and final MUST be declared beforethe visibility; static MUST be declared afterthe visibility.blankline_after_open_tag [symfony] Ensure there is no code onthe same line asthe PHP open tag anditis followed by a blankline.concat_without_spaces [symfony] Concatenation should be used without spaces.double_arrow_multiline_whitespaces [symfony] Operator => should not be arounded by multi-line whitespaces.duplicate_semicolon [symfony] Remove duplicated semicolons.empty_return [symfony] A return statement wishing toreturn nothing should be simply "return".extra_empty_lines [symfony] Removes extra empty lines.include [symfony] Include andfile path should be pided with a single space. File path should not be placed under brackets.join_function [symfony] Implode function should be used instead of join function.list_commas [symfony] Remove trailing commas inlist function calls.multiline_array_trailing_comma [symfony] PHP multi-line arrays should have a trailing comma.namespace_no_leading_whitespace [symfony] The namespace declaration line shouldn't contain leading whitespace.new_with_braces [symfony] All instances created with new keyword must be followed by braces.no_blank_lines_after_class_opening [symfony] There should be no empty lines afterclass opening brace.no_empty_lines_after_phpdocs [symfony] There should not be blank lines between docblock andthe documented element.object_operator [symfony] There should not be spacebeforeorafter object T_OBJECT_OPERATOR.operators_spaces [symfony] Binary operators should be arounded byat least one space.phpdoc_indent [symfony] Docblocks should have the same indentation asthe documented subject.phpdoc_no_access [symfony] @access annotations should be omitted from phpdocs.phpdoc_no_empty_return [symfony] @return void and @return null annotations should be omitted from phpdocs.phpdoc_no_package [symfony] @package and @subpackage annotations should be omitted from phpdocs.phpdoc_params [symfony] All items ofthe @param, @throws, @return, @var, and @type phpdoc tags must be aligned vertically.phpdoc_scalar [symfony] Scalar types should always be written inthe same form. "int", not"integer"; "bool", not"boolean"; "float", not"real"or"double".phpdoc_separation [symfony] Annotations in phpdocs should be grouped together so that annotations ofthe same type immediately follow each other, and annotations of a different type are separated by a single blank line.phpdoc_short_description [symfony] Phpdocs short descriptions should endin either a full stop, exclamation mark, or question mark.phpdoc_to_comment [symfony] Docblocks should only be used on structural elements.phpdoc_trim [symfony] Phpdocs should start andendwith content, excluding the very firstandlast line ofthe docblocks.phpdoc_type_to_var [symfony] @type should always be written as @var.phpdoc_var_without_name [symfony] @var and @type annotations should notcontainthe variable name.pre_increment [symfony] Pre incrementation/decrementation should be used if possible.remove_leading_slash_use [symfony] Remove leading slashes in use clauses.remove_lines_between_uses [symfony] Removes line breaks between use statements.return [symfony] An empty line feed should precede a return statement.self_accessor [symfony] Inside a classy element "self" should be preferred totheclassname itself.single_array_no_trailing_comma [symfony] PHP single-line arrays should not have trailing comma.single_blank_line_before_namespace [symfony] There should be exactly one blank line before a namespace declaration.single_quote [symfony] Convert double quotes to single quotes for simple strings.spaces_before_semicolon [symfony] Single-line whitespace before closing semicolon are prohibited.spaces_cast [symfony] A single space should be between cast and variable.standardize_not_equal [symfony] Replace all <> with !=.ternary_spaces [symfony] Standardize spaces around ternary operator.trim_array_spaces [symfony] Arrays should be formatted like function/method arguments, without leading or trailing single line space.unalign_double_arrow [symfony] Unalign double arrow symbols.unalign_equals [symfony] Unalign equals symbols.unary_operators_spaces [symfony] Unary operators should be placed adjacent to their operands.unused_use [symfony] Unused use statements must be removed.whitespacy_lines [symfony] Remove trailing whitespace attheendof blank lines.align_double_arrow [contrib] Align double arrow symbols in consecutive lines.align_equals [contrib] Align equals symbols in consecutive lines.concat_with_spaces [contrib] Concatenation should be used withat least one whitespace around.ereg_to_preg [contrib] Replace deprecated ereg regular expression functions with preg. Warning! This could change code behavior.header_comment [contrib] Add, replace or remove header comment.long_array_syntax [contrib] Arrays should use the long syntax.multiline_spaces_before_semicolon [contrib] Multi-line whitespace before closing semicolon are prohibited.newline_after_open_tag [contrib] Ensure there is no code onthe same line asthe PHP open tag.no_blank_lines_before_namespace [contrib] There should be no blank lines before a namespace declaration.ordered_use [contrib] Ordering use statements.php4_constructor [contrib] Convert PHP4-style constructors to__construct. Warning! This could change code behavior.phpdoc_order [contrib] Annotations in phpdocs should be ordered so that param annotations come first, then throws annotations, thenreturn annotations.phpdoc_var_to_type [contrib] @var should always be written as @type.short_array_syntax [contrib] PHP arrays should use the PHP 5.4 short-syntax.short_echo_tag [contrib] Replace short-echo 
  

The above describes the vim php code specifications, including some content, and hope to help those who are interested in the PHP Tutorial.

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.