pear:rfc:pear2_standards
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
pear:rfc:pear2_standards [2009/09/20 18:53] – update Base Exception Class rule based on ratification of Base Exception Interface RFC ashnazg | pear:rfc:pear2_standards [2017/09/22 13:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 6: | Line 6: | ||
* Title: PEAR2 Coding Standards | * Title: PEAR2 Coding Standards | ||
- | * Version: | + | * Version: |
* Status: | * Status: | ||
* Type: Standards | * Type: Standards | ||
- | * Last updated: September | + | * Last updated: September |
==== Author(s) Information ==== | ==== Author(s) Information ==== | ||
Line 166: | Line 166: | ||
<? | <? | ||
- | if (!class_exists(" | + | if (!class_exists(" |
throw new \PEAR2\PackageName\Exception(' | throw new \PEAR2\PackageName\Exception(' | ||
', | ', | ||
Line 210: | Line 210: | ||
==== Class Naming convention ==== | ==== Class Naming convention ==== | ||
- | A class naming rule may potentially be added to these standards, if the [[pear/ | ||
- | ==== Package Naming convention | + | The naming of individual classes follows these rules: |
- | A package naming rule may potentially be added to these standards, if the [[pear/ | + | * Start with capital letter, e.g. class Foo {} |
+ | * CamelCase for multi-worded class names, e.g. class FooBarBaz {} | ||
+ | * Abbreviations only start with capital letter, e.g. class MrClean {} | ||
+ | * Acronyms should be fully capitalized, | ||
+ | * syntax/ | ||
+ | * the suffix should be a full legible word, not a cryptic letter/ | ||
+ | * a suffix for an Abstract or Interface class name is *required* | ||
+ | |||
+ | The only exception to the Interface suffix requirement is the base package exception, which must be named simply " | ||
+ | |||
+ | |||
+ | === Examples | ||
+ | Here are some real-life examples gleaned from PEAR1 packages: | ||
+ | * "class Text_Diff" | ||
+ | * "class DB_DataObject" | ||
+ | * "class Auth_PrefManager" | ||
+ | * "class Services_Amazon_SQS" | ||
+ | * " | ||
+ | * " | ||
+ | |||
+ | |||
+ | === Requirement | ||
+ | The only exception | ||
+ | |||
==== Base Exception interface ==== | ==== Base Exception interface ==== | ||
Line 265: | Line 288: | ||
| | ||
try { | try { | ||
- | $p = new PEAR2\PackageName\Foo(); | + | $p = new \PEAR2\PackageName\Foo(); |
| | ||
- | } catch (PEAR2\PackageName\Exception $e) { | + | } catch (\PEAR2\PackageName\Exception $e) { |
echo " | echo " | ||
} | } | ||
Line 288: | Line 311: | ||
... | ... | ||
// retrieve data from info.txt | // retrieve data from info.txt | ||
- | $info = file_get_contents(dirname(__FILE__) . ' | + | $info = file_get_contents(dirname(__FILE__) . '/../ |
?> | ?> | ||
pear/rfc/pear2_standards.1253472807.txt.gz · Last modified: 2017/09/22 13:28 (external edit)