Heim  >  Artikel  >  Backend-Entwicklung  >  Teilen von PHP-Codestil-Stilspezifikationen

Teilen von PHP-Codestil-Stilspezifikationen

小云云
小云云Original
2018-03-05 10:30:424236Durchsuche

Dieser Artikel teilt Ihnen hauptsächlich die Spezifikation des PHP-Codestils mit. Ich hoffe, er kann Ihnen helfen.

1. Grundvereinbarungen

1. Quelldateien

(1) Reine PHP-Code-Quelldateien verwenden nur das

(2) Das Codierungsformat des PHP-Codes in der Quelldatei muss das BOM-freie UTF-8-Format sein; das Zeilenendezeichen;

(4) Eine Quelldatei führt nur eine Art von Deklaration durch, das heißt, diese Datei wird speziell zum Festlegen von Konfigurationsinformationen verwendet sie zusammen;

2. Einzug

Verwenden Sie die Tabulatortaste zum Einrücken, und die Länge jeder Tabulatortaste ist auf 4 Leerzeichen eingestellt

Es wird empfohlen, maximal 120 Zeichen zu schreiben. Wenn diese Zahl überschritten wird, kann sie von einem allgemeinen Editor festgelegt werden.

//wo

Fügen Sie eine Notiz hinzu, um horizontales und vertikales Scrollen zu verhindern,

4. Schlüsselwörter und True/False/Null

Der Schlüssel zu PHP Wörter müssen Kleinbuchstaben sein, und boolesche Werte: true, false und null müssen ebenfalls Kleinbuchstaben sein.

Die folgenden PHP-„Schlüsselwörter“ müssen in Kleinbuchstaben geschrieben sein:

'__halt_compiler', 'abstract', 'and', 'array', 'as', 'break ', 'callable', 'case', 'catch', 'class', 'clone', 'const', 'continue', 'declare', 'default', 'die', 'do', 'echo', ' else', 'elseif', 'empty', 'enddeclare', 'endfor', 'endforeach', 'endif', 'endswitch', 'endwhile', 'eval', 'exit', 'extends', 'final ', 'for', 'foreach', 'function', 'global', 'goto', 'if', 'implements', 'include', 'include_once', 'instanceof', 'insteadof', 'interface', ' isset', 'list', 'namespace', 'new', 'or', 'print', 'private', 'protected', 'public', 'require', 'require_once', 'return', 'static ' , 'switch', 'throw', 'trait', 'try', 'unset', 'use', 'var', 'while', 'xor'

Benennung

(1), der Klassenname wird in StudlyCaps geschrieben;

(2), der Methodenname (der Klasse) wird in cameCase geschrieben;( 3) Verwendung Kleinbuchstaben + Unterstriche für Funktionsnamen, z. B. Funktion http_send_post(); (4) Verwenden Sie Kleinbuchstaben für Variablennamen, z. B. $userName. 6. Code-Kommentar-Tags

Zum Beispiel Funktionskommentare, Variablenkommentare usw. Zu den gängigen Tags gehören @package, @var, @param, @return, @author, @todo, @throws

Muss den Tag-Regeln von phpDocument entsprechen, Erstellen Sie außerdem keine neuen Tags. Weitere Tags finden Sie auf der offiziellen Website von phpDocument

7. Geschäftsmodul

(1) Bei mehreren Vorgängen zum Aktualisieren/Hinzufügen von Datentabellen die äußerste Ebene Es sollten Transaktionen verwendet werden, um die Atomizität von Datenbankoperationen sicherzustellen.

(2), Modellschicht, führt nur einfache Datentabellenabfragen durch ;

(4) Der Controller führt nur URL-Routing durch, nicht als Geschäftsmethode aufrufen.

(5) (), order() und andere Modellmethoden,

, also im Controller, haben keine SQL-Anweisungen wie diese: D('XXX')->where()->order() ->limit( )->find();

where(), order(), limit() und andere SQL-Methoden können nur in der Modellschicht und der Geschäftsschicht erscheinen!

2. Codestil

1. Namespace (Namespace) und Import (Use)-Deklarationen

Beschreiben Sie es zunächst kurz im Text:

Nach der Namespace-Deklaration muss eine Leerzeile stehen.

Alle Import-(Verwendungs-)Deklarationen müssen unterhalb der Namespace-Deklaration platziert werden;

Eine Anweisung darf nur ein Import-(Verwendungs-)Schlüsselwort enthalten.

  1. Nach dem Import-(Verwendungs-)Deklarationscodeblock muss eine Leerzeile stehen. OK; >

  2. Verwenden Sie Code zur Veranschaulichung:
  3. 1

    2

    3

    4

    5

    6

    namespace LibDatabases; // 下面必须空格一行

    class Mysql {

    }

    namespace下空一行,才能使用use,再空一行,才能声明class

    < /Tabelle>

    2、类(class),属性(property)和方法(method)

    (1)、继承(extends) 和实现(implement) 必须和 class name 写在一行。

    < table style="margin:5px 0px;border-collapse:collapse;border-spacing:0px;border:1px solid #C0C0C0;width:951px;padding:0px;background:none;float:none;height:auto;line- height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;font-size:12px;min-height:auto;" border="0">

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    namespace LibDatabases; // 下面必须空格一行

    use FooInterface; // use 必须在namespace 后面声明

    use BarClass as Bar;

    use OtherVendorOtherPackageBazClass; // 下面必须空格一行

    class Mysql {

    }

    1<🎜><🎜>2<🎜><🎜>3<🎜><🎜>4<🎜><🎜>5<🎜><🎜>6<🎜><🎜> 7<🎜><🎜>8<🎜><🎜>9<🎜><🎜>10<🎜>
    <🎜><🎜>namespace LibDatabases; // 下面必须空格一行<🎜><🎜> <🎜><🎜>use FooInterface; // use 必须在namespace 后面声明<🎜><🎜>use BarClass as Bar;<🎜><🎜>use OtherVendorOtherPackageBazClass; // 下面必须空格一行<🎜><🎜> <🎜><🎜>class Mysql {<🎜><🎜> <🎜><🎜>}<🎜>

    1

    2

    3

    4

    5

    6

    namespace LibDatabaes;

    class Mysql extends ParentClass implements PDO, DB { // 写一行

    }

    1

    2

    1

    2

    3

    4

    5

    6

    7

    8

    namespace LibDatabaes;

    class Mysql extends ParentClass implements PDO, DB { // 写一行

    public $foo = null;

    private $name = 'yangyi';

    protected $age = '17';

    }

    <🎜>3<🎜><🎜>4<🎜><🎜>5<🎜><🎜>6<🎜>
    <🎜><🎜>Namespace LibDatabaes;
    <🎜>(2)、属性(property)必须声明其可见性,到底是 public 还是 protected.不能省略,也不能使用var, var是php老版本中的什么方式,等用于public。<🎜>
    <🎜>1<🎜><🎜>2<🎜><🎜>3<🎜><🎜>4<🎜><🎜>5<🎜><🎜>6<🎜><🎜> 7<🎜><🎜>8<🎜><🎜><🎜>namespace LibDatabaes;<🎜><🎜> <🎜><🎜>class Mysql extends ParentClass implements PDO, DB { // 写一行<🎜 ><🎜>    public $foo = null;<🎜><🎜>    private $name = 'yangyi';<🎜><🎜>    protected $age = '17';<🎜><🎜>}<🎜>

    (3) Die Methode muss ihre Sichtbarkeit deklarieren, egal ob sie öffentlich, geschützt oder privat ist, sie darf nicht weggelassen werden. Wenn es mehrere Parameter gibt, folgen Sie dem ersten Parameter mit „“, und fügen Sie ein Leerzeichen hinzu: Funktionsname ($par, $par2, $pa3). Wenn die Parameter Standardwerte haben, trennen Sie sie durch ein Leerzeichen links und rechts von „. =".

    befindet sich ein Leerzeichen

    1

    2

    3

    4

    5

    6

    7

    8

    namespace LibDatabaes;

    class Mysql extends ParentClass implements PDO, DB { // 写一行

    public getInfo($name, $age, $gender = 1) { // 参数之间有一个空格。默认参数的“=”左右各有一个空格,) 与 { 之间有一个空格

    }

    }

    1

    2

    3

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    namespace VendorPackage;

    abstract class ClassName {

    protected static $foo; // static放后面

    abstract protected function zim(); // abstract放前面

    final public static function bar() { // final放前面,static放最后。

    // 方法主体部分

    }

    }

    <🎜>4<🎜><🎜>5 <🎜><🎜>6<🎜><🎜>7<🎜><🎜>8<🎜>
    <🎜><🎜>namespace LibDatabaes;<🎜><🎜> <🎜><🎜>class Mysql erweitert ParentClass implementiert PDO, DB { // Eine Zeile schreiben <🎜><🎜> public getInfo($name, $age, $gender = 1) { // Zwischen den Parametern steht ein Leerzeichen. Um das „=" des Standardparameters befindet sich ein Leerzeichen und zwischen ) und { <🎜><🎜> <🎜><🎜> }<🎜><🎜>}<🎜>
    <🎜>(4). Wenn abstract und final zum Erstellen von Klassendeklarationen verwendet werden, müssen sie vor der Sichtbarkeitsdeklaration (öffentlich, geschützt oder privat) platziert werden. Wenn static für die Klassendeklaration verwendet wird, muss es nach der Sichtbarkeitsdeklaration platziert werden. <🎜><🎜>Fügen Sie den Code direkt hinzu: <🎜>
    <🎜><🎜>namespace VendorPackage;<🎜><🎜> <🎜><🎜>abstract class ClassName {<🎜><🎜> protected static $foo; // statisch dahinter setzen < 🎜><🎜> abstract protected function zim(); // abstract steht an erster Stelle <🎜><🎜> <🎜><🎜> final public static function bar() { // final steht an erster Stelle, static steht an letzter Stelle. <🎜><🎜> // Methodenkörperteil <🎜><🎜> }<🎜><🎜>}<🎜>

    3. Kontrollstruktur

    Kontrollschnittstelle, d. h. if else while-Schalter usw. Diese Art von Schreibstandard ist oft problematisch und sollte daher standardisiert werden.

    (1) If, elseif, else Schreibmethode, gehen Sie einfach zum Standardcode:

    1

    2

    3

    4

    5

    6

    7

    8

    if ($expr1) { // if 与 ( 之间有一个空格,) 与 { 之间有一个空格

    } elseif ($expr2) { // elesif 连着写,与 ( 之间有一个空格,) 与 { 之间有一个空格

    } else { // else 左右各一个空格

    }

    1

    2

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    switch ($expr) { // switch 与 ( 之间有一个空格,) 与 { 之间有一个空格

    case 0:

    echo 'First case, with a break'; // 对齐

    break; // 换行写break,也对齐。

    case 1:

    echo 'Second case, which falls through';

    // no break

    case 2:

    case 3:

    case 4:

    echo 'Third case, return instead of break';

    return;

    default:

    echo 'Default case';

    break;

    }

    <🎜>3<🎜><🎜>4<🎜><🎜>5<🎜><🎜>6<🎜><🎜>7<🎜><🎜>8<🎜>
    <🎜><🎜>if ($expr1) { // Zwischen if und ( gibt es ein Leerzeichen zwischen ) und { <🎜><🎜> <🎜><🎜>} elseif ($expr2) { // elesif wird fortlaufend geschrieben, es gibt ein Leerzeichen zwischen (,) und { Es gibt ein Leerzeichen zwischen <🎜><🎜> <🎜><🎜>} else { // else Es gibt ein Leerzeichen links und rechts <🎜><🎜 > <🎜><🎜>}<🎜>
    <🎜> (2), switch, case Achten Sie auf Leerzeichen und Zeilenumbrüche, oder gehen Sie direkt zum Standardcode: <🎜 >< td class="code" style="padding :3px;border:1px solid rgb(204,204,204);border-collapse:collapse;margin:0px;background:none;float:none;height:auto;line-height:1.1em ;vertical-align:baseline;width:auto ;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;min-height:auto;"><🎜><🎜>switch ($expr) { // Es gibt ein Leerzeichen zwischen switch und (, es gibt ein Leerzeichen zwischen ) und {<🎜><🎜> case 0:<🎜><🎜> echo 'Erster Fall, mit eine Pause'; // Ausrichtung<🎜> <🎜>                                                                                                                                                       ausgerichtet. <🎜><🎜>Fall 1:<🎜><🎜>echo 'Zweiter Fall, der durchfällt';<🎜><🎜> // keine Pause<🎜><🎜>Fall 2:<🎜><🎜> Fall 3:<🎜><🎜> Fall 4:<🎜><🎜> echo 'Dritter Fall, Rückkehr statt Pause';<🎜><🎜> return;<🎜><🎜> Standard:<🎜><🎜 > echo 'Default case';<🎜><🎜> break;<🎜><🎜>}<🎜>
    <🎜>1<🎜><🎜>2<🎜><🎜>3<🎜><🎜> 4<🎜><🎜>5<🎜 ><🎜>6<🎜><🎜>7<🎜><🎜>8<🎜><🎜>9<🎜><🎜>10<🎜><🎜>11 <🎜><🎜>12<🎜> <🎜>13<🎜><🎜>14<🎜><🎜>15<🎜><🎜>16<🎜><🎜>17<🎜>

    (3)、while,do while ;width:951px;padding:0px;background:none;float:none;height:auto;line-height:1.1em;vertical-align:baseline;font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New ', Courier, monospace;font-size:12px;min-height:auto;" border="0">

    1

    1

    2

    3

    4

    5

    6

    7

    8

    while ($expr) { // while 与 ( 之间有一个空格, ) 与 { 之间有一个空格

    }

    do { // do 与 { 之间有一个空格

    } while ($expr); // while 左右各有一个空格

    2

    1

    2

    3

    4

    for ($i = 0; $i < 10; $i++) { // for 与 ( 之间有一个空格,二元操作符 "="、"<" 左右各有一个空格,) 与 { 之间有一个空格

    }

    3<🎜><🎜>4<🎜><🎜>5<🎜><🎜>6<🎜><🎜> 7<🎜><🎜>8<🎜><🎜><🎜>while ($expr) { // while 与 ( 之间有一个空格, ) 与 { 之间有一个空格<🎜><🎜 > <🎜><🎜>}<🎜><🎜> <🎜><🎜>do { // do 与 { 之间有一个空格<🎜><🎜> <🎜><🎜>} while ($expr) ; // while 左右各有一个空格<🎜><🎜>(4)、for的写法<🎜>
    <🎜>1<🎜><🎜>2<🎜><🎜>3<🎜><🎜>4<🎜><🎜><🎜>for ($i = 0; $ i < 10; $i++) { // für 与 ( 之间有个空格,二元操作符 "="、"<" 左右各有个空格,) 之间有个空格<🎜>< 🎜> <🎜><🎜>}<🎜>

    (5)、foreach的写法

    1

    2

    3

    4

    foreach ($iterable as $key => $value) { // foreach 与 ( 之间有一个空格,"=>" 左右各有一个空格,) 与 { 之间有一个空格

     

    }

    1

    2

    1

    2

    3

    4

    5

    6

    7

    8

    try { // try 右边有一个空格

    } catch (FirstExceptionType $e) { // catch 与 ( 之间有一个空格,) 与 { 之间有一个空格

    } catch (OtherExceptionType $e) { // catch 与 ( 之间有一个空格,) 与 { 之间有一个空格

    }

    <🎜>3<🎜><🎜>4<🎜>
    <🎜><🎜>foreach ($iterable as $key = > 🎜>}

    (6)、try Catch的写法
    123456 78 <🎜>try { // try 右边有一个空格<🎜><🎜> <🎜><🎜>} catch (FirstExceptionType $e) { / / Catch 与 ( 之间有一个空格,) 与 { 之间有一个空格<🎜><🎜> <🎜><🎜>} catch (OtherExceptionType $e) { // Catch 与 ( 之间有一个空格,)与 { 之间有一个空格<🎜><🎜> <🎜><🎜>}<🎜>

    4. Kommentar

    (1), dem Zeilenkommentar

    / muss ein Leerzeichen folgen

    Wenn davor ein nicht leeres Zeichen steht; von //, dann // Ein Leerzeichen muss vor

    (2) eingefügt werden, Funktionskommentare

    Der Text von Parameternamen, Attributnamen und Beschriftungen muss ausgerichtet sein und down;

    sollte vor dem ersten Label hinzugefügt werden. Eine leere Zeile;

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    /**

    * This is a sample function to illustrate additional PHP

    * formatter options.

    *

    * @param $one The first parameter

    * @param int $two The second parameter

    * @param string $three The third parameter with a longer

    * comment to illustrate wrapping.

    * @return void

    * @author phpgo.cnblogs.com

    * @license GPL

    */

    function foo($one, $two = 0, $three = "String") {

    }

    1<🎜><🎜>2<🎜 ><🎜>3<🎜><🎜>4<🎜> <🎜>5<🎜><🎜>6<🎜><🎜>7<🎜><🎜>8<🎜><🎜>9<🎜> <🎜>10<🎜><🎜>11<🎜>< 🎜>12<🎜><🎜>13<🎜><🎜>14<🎜><🎜>15<🎜><🎜>16<🎜>< /td>
    <🎜>< ?php<🎜><🎜>/**<🎜><🎜> * Dies ist eine Beispielfunktion zur Veranschaulichung zusätzlicher PHP<🎜><🎜> * Formatierungsoptionen.<🎜><🎜> *<🎜><🎜> * @param        $one   Der erste Parameter<🎜> <🎜> * @param int    $two   Der zweite Parameter<🎜><🎜> * @param string $two Der dritte Parameter mit einem längeren<🎜><🎜> *                      Kommentar zur Veranschaulichung des Zeilenumbruchs.<🎜><🎜> * @ return void<🎜><🎜> * @author  phpgo.cnblogs.com<🎜><🎜> * @license GPL<🎜><🎜> * /<🎜><🎜>function foo($one, $two = 0, $ three = "String") {<🎜><🎜> <🎜> <🎜>}<🎜>

    5. Leerzeichen

    (1), Zuweisungsoperatoren (=, += usw.), logische Operatoren (&&, ||), Gleichheitszeichenoperatoren (==, !=), Beziehungsoperatoren (<, >, <=, >=), bitweise Operatoren (&, |, ^), Konnektoren (.) Links und rechts befindet sich ein Leerzeichen

    (2) , if, else, elseif, while, do, switch, for, foreach, try, Catch, Finally usw. Zwischen der unmittelbaren linken Klammer „(“;

    (3), function, Between befindet sich ein Leerzeichen Bei den verschiedenen Parametern der Methode steht nach dem Komma ein Leerzeichen (",");

    6. Alle linken geschweiften Klammern { werden nicht umbrochen , und { ist eng Vor dem Kommentar (Zeilenkommentar/Blockkommentar) des Codes muss auf derselben Ebene (gleiche Einrückung) eine Leerzeile stehen zwischen jeder Methode/Funktion;

    (4) gibt es eine Leerzeile zwischen Namespace-Anweisung, Use-Anweisung und Clase-Anweisung

    (5) , Return-Anweisung

    If Es gibt nur eine Zeile PHP-Code vor der Return-Anweisung. Es ist keine Leerzeile vor der Return-Anweisung erforderlich.

    Wenn vor der Return-Anweisung mindestens zwei Zeilen PHP-Code vorhanden sind, fügen Sie ein Leerzeichen hinzu Zeile vor der Return-Anweisung;

    (5), es gibt eine Leerzeile zwischen if, while, switch, for, foreach, try und anderen Codeblöcken;

    【Zusammenfassung des Referenzbeispiels】

    Referenz 1:
    befindet sich ein Leerzeichen

    1

    2

    3

    1

    2

    3

    4

    5

    6

    7

    8

    namespace LibDatabaes;

    class Mysql extends ParentClass implements PDO, DB { // 写一行

    public getInfo($name, $age, $gender = 1) { // 参数之间有一个空格。默认参数的“=”左右各有一个空格,) 与 { 之间有一个空格

    }

    }

    4<🎜><🎜>5<🎜><🎜>6<🎜><🎜>7<🎜><🎜>8<🎜 >
    <🎜> <🎜>namespace LibDatabaes;<🎜><🎜> <🎜><🎜>class Mysql erweitert ParentClass-Implementierungen PDO, DB { // Eine Zeile schreiben <🎜><🎜> public getInfo($name , $age, $ gender = 1) { // Zwischen den Parametern steht ein Leerzeichen. Um das „=" des Standardparameters befindet sich ein Leerzeichen und zwischen ) und { <🎜><🎜> <🎜><🎜> }<🎜><🎜>}<🎜>

    参考2:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    namespace VendorPackage;

    abstract class ClassName {

    protected static $foo; // static放后面

    abstract protected function zim(); // abstract放前面

    final public static function bar() { // final放前面,static放最后。

    // 方法主体部分

    }

    }

    1<🎜><🎜>2<🎜><🎜>3<🎜><🎜>4<🎜><🎜>5<🎜><🎜>6<🎜><🎜> 7<🎜><🎜>8<🎜><🎜>9<🎜><🎜>10<🎜><🎜>11<🎜>
    <🎜><🎜>namespace VendorPackage;<🎜><🎜> <🎜><🎜>abstract class ClassName {<🎜><🎜>    protected static $foo; // static放后面<🎜><🎜>    abstract protected function zim(); // abstract放前面<🎜><🎜> <🎜><🎜>    final public static function bar() { // final放前面,static放最后.<🎜><🎜>        // 方法主体部分<🎜>< 🎜>    }<🎜><🎜>}<🎜>

    参考3:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    namespace libraryModel;

    use libraryHelperImageHelper;

    use libraryLogicUserMainLogic;

    /**

    * 用户表 数据模型

    *

    * @package libraryModel

    */

    class UserMainModel extends BasicModel {

    /**

    * 获得用户统计信息

    *

    * @param int $userId 用户ID

    * @return array

    */

    public function getUserCard($userId) {

    $userId = intval($userId);

    return UserMainLogic::instance()->getUserCard($userId);

        }

     

        /**

         * 根据Id 获取用户信息

         *

         * @param int    $userId 用户Id

         * @param string $field  显示字段

         * @return array

         */

        public function getByUserId($userId = 0, $field = '*') {

            if (empty($userId)) {

                return array();

            }

     

            $where = array('id' => $userId);

            $info = $this->field($field)->where($where)->find();

     

            if (isset($info['image']) && isset($info['sex'])) {

                $info['image'] = ImageHelper::GetImageUrl($info['image'], $info['sex']);

            }

     

            return $info;

        }

    }

    123456 7891011121314 151617181920212223242526272829303132333435 36373839404142434445
    <🎜>namespace libraryModel;<🎜><🎜> <🎜><🎜>use libraryHelperImageHelper;<🎜> <🎜>use libraryLogicUserMainLogic;<🎜><🎜> <🎜><🎜>/**<🎜><🎜> * Benutzertabellendatenmodell <🎜><🎜> *<🎜><🎜> * @package LibraryModel<🎜><🎜>*/<🎜><🎜>class UserMainModel extends BasicModel {<🎜><🎜>     /**<🎜><🎜> * Benutzerstatistiken abrufen <🎜><🎜> *<🎜><🎜> * @param int $userId Benutzer-ID<🎜><🎜> * @return array<🎜><🎜>* /<🎜><🎜>    public function getUserCard($userId) {<🎜><🎜>        $userId = intval($userId);<🎜><🎜>        return UserMainLogic::instance()->getUserCard($userId );    }     /** * Benutzerinformationen basierend auf der ID abrufen * * @param int $userId UserId * @param string $field Anzeigefeld * @return array*/    public function getByUserId($userId = 0, $field = '*' ) {        if (empty($userId)) {            return array() array('id' => $userId);        $info = $this->field($field)->where($where)->find();  if (isset($info['image']) && isset($info['sex'])) {            $info['image'] = ImageHelper::GetImageUrl($info['image' ], $info['sex']);        }         return $info;    }}

    参考4:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    $serv = new swoole_server("127.0.0.1", 9502);

     

    // sets server configuration, we set task_worker_num config greater than 0 to enable task workers support

    $serv->set(array('task_worker_num' => 4));

     

    // attach handler for receive event, which have explained above.

    $serv->on('receive', function($serv, $fd, $from_id, $data) {

        // we dispath a task to task workers by invoke the task() method of $serv

        // this method returns a task id as the identity of ths task

        $task_id = $serv->task($data);

        echo "Dispath AsyncTask: id=$task_idn";

    });

     

    // attach handler for task event, the handler will be executed in task workers.

    $serv->on('task', function ($serv, $task_id, $from_id, $data) {

        // handle the task, do what you want with $data

        echo "New AsyncTask[id=$task_id]".PHP_EOL;

     

        // after the task task is handled, we return the results to caller worker.

        $serv->finish("$data -> OK");

    });

     

    // attach handler for finish event, the handler will be executed in server workers, the same worker dispatched this task before.

    $serv->on('finish', function ($serv, $task_id, $data) {

        echo "AsyncTask[$task_id] Finish: $data".PHP_EOL;

    });

     

    $serv->start();

    123456 7891011121314 1516171819202122232425262728
    $serv = new swoole_server("127.0.0.1", 9502); // legt die Serverkonfiguration fest. Wir setzen task_worker_num config auf größer als 0, um die Unterstützung von Task-Workern zu ermöglichen$serv->set(array('task_worker_num' => 4)); // Handler für Empfangsereignis anhängen, die oben erläutert wurden.$serv->on('receive', function($serv , $fd, $from_id, $data) {    // Wir leiten eine Aufgabe an Aufgabenarbeiter weiter, indem wir die task()-Methode von $serv aufrufen    // Diese Methode gibt eine Aufgaben-ID zurück als Identität dieser Aufgabe    $task_id = $serv->task($data);    echo "Dispath AsyncTask: id=$task_idn";} ); // Handler für Aufgabenereignis anhängen, der Handler wird in Aufgabenarbeitern ausgeführt.$serv->on('task', function ( $serv, $task_id, $from_id, $data) {    // Behandeln Sie die Aufgabe, machen Sie mit $data, was Sie wollen    echo "Neue AsyncTask[id=$task_id]". PHP_EOL;     // Nachdem die Aufgabe bearbeitet wurde, geben wir die Ergebnisse an den Anrufer-Worker zurück.    $serv->finish("$data -> OK");}); // Handler für Finish-Ereignis anhängen, der Handler wird in Server-Workern ausgeführt, derselbe Worker hat diese Aufgabe zuvor gesendet. $serv->on('finish', function ($serv, $task_id, $data) {    echo "AsyncTask[$task_id] Finish: $data".PHP_EOL; }); $serv->start();

    Zusammenfassung: Alle linken geschweiften Klammern { brechen keine neuen Zeilen um, und die Zeile direkt darunter { darf keine Leerzeile sein!

    Die oben genannten Codestilspezifikationen beziehen sich auf die Spezifikationen von Entwicklungssprachen wie Java, JavaScript, Objective-C und Go!

    Die Java-Sprache hat einen tiefgreifenden Einfluss auf chinesische Programmierer, und die meisten Menschen sind es immer noch gewohnt, die linke geschweifte Klammer { ohne Zeilenumbruch zu lassen!

    Schreibprinzip: Machen Sie den Code kompakt, ohne die kleine Modularität zu verlieren!

    PSR-4-Spezifikation

    PSR-4-Spezifikation ist eine neue Spezifikation, die gerade erschienen ist. Sie regelt auch das automatische Laden (Autoload). PSR-0 sind ergänzende Spezifikationen

    Lassen Sie mich kurz erläutern, hauptsächlich die folgenden Punkte:

    1. Die Abschaffung von PSR-0 ist eine Verzeichnisaufteilung in der Art und Weise, wie Symbole geschrieben werden , _underscore hat in vollständig qualifizierten Klassennamen keine besondere Bedeutung.

    2. Der Name der Klassendatei muss mit .php enden.

    3. Der Klassenname muss genau mit dem entsprechenden Dateinamen übereinstimmen und die Groß-/Kleinschreibung muss genau gleich sein.

    Referenz:

    Kodierungsstilforschung: Ist die linke geschweifte Klammer eine neue Zeile? ? ?

    PSR-[0-4]-Codespezifikation in PHP

    [Ergänzendes] Array-Schreibformat

    Wenn nur ein Schlüssel-Wert-Paar vorhanden ist, schreiben Sie es in eine Zeile :

    1

    $where = array('id' => 789);

    1

    $where = array('id' => 789);

    1

    2

    3

    4

    $where = array(

        'id' => 789,

        'user_name' => 'phpgo'

    );

    Wenn es mehrere (zwei oder mehr) Schlüssel-Wert-Paare gibt, brechen Sie die Zeile um:
    1234 $where = array( 'id ' => 789, 'user_name' => 'phpgo');

    Verwandte Empfehlungen:

    Teilen des Paginierungscodestils von ThinkPHP 3.2.3

    PHP-Codestil

    PHP-Dokumentation zu Codierungsstandards (Sammlung)

Das obige ist der detaillierte Inhalt vonTeilen von PHP-Codestil-Stilspezifikationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn