Skip to end of metadata
Go to start of metadata

<h2>Coding Standards: Naming Types Poll</h2>

<p>Please note that this poll is a result of the original RFC by <ac:link><ri:user ri:username="ralph" /></ac:link> located at <ac:link><ri:page ri:content-title="RFC - Revised Naming of Interfaces in ZF2" /></ac:link></p>

<p>As such, the order of the proposed values will appear in this order:</p>
<ul>
<li>status quo</li>
<li>Ralph's proposed format</li>
<li>followed by other formats as they became available to <ac:link><ri:user ri:username="ralph" /></ac:link> in creating this poll</li>
</ul>

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

Naming for Interface Types
Choices Your Vote Current Result: (87 Total Votes) Voters

1) No prefix, no suffix (status quo); ie: Client

(15 votes, 17%)

Artur Bodera, Ben Scholzen, Matthew Larson, Matthew M Caya, Seth Thornberry, Wil Moore III (wilmoore), Marc Bennewitz (private), Patrick Günther, Kazusuke Sasezaki, Maxell, Tomoaki Kosugi, Pieter, Emmanuel Bouton, Till Klampaeckel, Sebastian Krebs

2) Suffixed with 'Interface' (ralph's proposal); ie: ClientInterface

(68 votes, 78%)

Ralph Schindler, Pádraic Brady, Rossi Mario, Chris Antoine, Evan Coury, Kyle Spraggs, Mickael Perraud, Aleksey 'Xerkus' Khudyakov, Stewart Lord, Michiel Staessen, Richard Tuin, Drue Spackman, Anthony Shireman, Denis Portnov, Simon Griffiths, Andrew Ballard, Andreas Möller, Oskar Bley, Goran Juric, Wim Godden, Paul M Jones, Mike Willbanks, Taiwen Jiang, Aldemar Bernal, Andrej Baranov, Marco Pivetta, Nicholas Calugar, Rob Allen, Oleg Lobach, Antonio J García Lagar, Christoph Hochstrasser, Frank Brückner, Àlex Corretgé, Anton Stöckl, Jurian Sluiman, Ralf Eggert, Alexander Tukai, Albert Varaksin, Matt Cockayne, Louis-Xavier Vignal, Alex Pogodin, Josh Butts, Guillaume Métayer, bullfrogblues, Kai Uwe, David Weinraub, Konr Ness, Toby Hart Dyke, Václav Vaník, Constantin Ehrenstein, Tony Nelson, H Hatfield, Matthew Weier O'Phinney, Tim Fountain, Kim Blomqvist, Torio Farazdagi, Chris Morrell, Alex, Ken Chou, Antoine Hedgecock, Mike A., Dennis Winter, Matej Szendi, Enrico Zimuel, Alberto Viana, Christoph Rust, Thomas Deutschmann, Alayn Gortazar

3) Prefixed with 'I', ie: IClient

(4 votes, 4%)

Tomáš Fejfar, Sascha-Oliver Prolic, Luiz Damim, Keith Pope

4) Prefixed with 'Interface', ie: InterfaceClient

(0 votes, 0%)
All voters:

Artur Bodera, Ben Scholzen, Matthew Larson, Matthew M Caya, Seth Thornberry, Wil Moore III (wilmoore), Marc Bennewitz (private), Patrick Günther, Kazusuke Sasezaki, Maxell, Tomoaki Kosugi, Pieter, Emmanuel Bouton, Till Klampaeckel, Sebastian Krebs, Ralph Schindler, Pádraic Brady, Rossi Mario, Chris Antoine, Evan Coury, Kyle Spraggs, Mickael Perraud, Aleksey 'Xerkus' Khudyakov, Stewart Lord, Michiel Staessen, Richard Tuin, Drue Spackman, Anthony Shireman, Denis Portnov, Simon Griffiths, Andrew Ballard, Andreas Möller, Oskar Bley, Goran Juric, Wim Godden, Paul M Jones, Mike Willbanks, Taiwen Jiang, Aldemar Bernal, Andrej Baranov, Marco Pivetta, Nicholas Calugar, Rob Allen, Oleg Lobach, Antonio J García Lagar, Christoph Hochstrasser, Frank Brückner, Àlex Corretgé, Anton Stöckl, Jurian Sluiman, Ralf Eggert, Alexander Tukai, Albert Varaksin, Matt Cockayne, Louis-Xavier Vignal, Alex Pogodin, Josh Butts, Guillaume Métayer, bullfrogblues, Kai Uwe, David Weinraub, Konr Ness, Toby Hart Dyke, Václav Vaník, Constantin Ehrenstein, Tony Nelson, H Hatfield, Matthew Weier O'Phinney, Tim Fountain, Kim Blomqvist, Torio Farazdagi, Chris Morrell, Alex, Ken Chou, Antoine Hedgecock, Mike A., Dennis Winter, Matej Szendi, Enrico Zimuel, Alberto Viana, Christoph Rust, Thomas Deutschmann, Alayn Gortazar, Tomáš Fejfar, Sascha-Oliver Prolic, Luiz Damim, Keith Pope

]]></ac:plain-text-body></ac:macro>

<p><br class="atl-forced-newline" /></p>
<hr />
<p><br class="atl-forced-newline" /></p>

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

Naming for Abstract Classes
Choices Your Vote Current Result: (84 Total Votes) Voters

1) Prefixed with Abstract (status quo); ie: AbstractClient

(40 votes, 47%)

Ralph Schindler, Pádraic Brady, Rossi Mario, Chris Antoine, Ben Scholzen, Artur Bodera, Evan Coury, Kyle Spraggs, Matthew Larson, Stewart Lord, Michiel Staessen, Drue Spackman, Anthony Shireman, Matthew M Caya, Andrew Ballard, Seth Thornberry, Oskar Bley, Tomáš Fejfar, Paul M Jones, Nicholas Calugar, Rob Allen, Marc Bennewitz (private), Christoph Hochstrasser, Sascha-Oliver Prolic, Luiz Damim, Alexander Tukai, Kazusuke Sasezaki, Guillaume Métayer, Maxell, Pieter, Konr Ness, Keith Pope, Toby Hart Dyke, H Hatfield, Kim Blomqvist, Torio Farazdagi, Chris Morrell, Ken Chou, Antoine Hedgecock, Christoph Rust

2) No prefix, no suffix; ie: Client

(8 votes, 9%)

Wim Godden, Andrej Baranov, Patrick Günther, Matt Cockayne, Josh Butts, Till Klampaeckel, Sebastian Krebs, Emmanuel Bouton

3) Suffixed with 'Abstract'; ie: ClientAbstract

(36 votes, 42%)

Mickael Perraud, Aleksey 'Xerkus' Khudyakov, Richard Tuin, Denis Portnov, Simon Griffiths, Andreas Möller, Wil Moore III (wilmoore), Goran Juric, Mike Willbanks, Taiwen Jiang, Aldemar Bernal, Marco Pivetta, Oleg Lobach, Àlex Corretgé, Anton Stöckl, Jurian Sluiman, Ralf Eggert, Albert Varaksin, Antonio J García Lagar, Alex Pogodin, bullfrogblues, Tomoaki Kosugi, David Weinraub, Václav Vaník, Frank Brückner, Constantin Ehrenstein, Tony Nelson, Matthew Weier O'Phinney, Alex, Mike A., Dennis Winter, Matej Szendi, Kai Uwe, Enrico Zimuel, Thomas Deutschmann, Alayn Gortazar

All voters:

Ralph Schindler, Pádraic Brady, Rossi Mario, Chris Antoine, Ben Scholzen, Artur Bodera, Evan Coury, Kyle Spraggs, Matthew Larson, Stewart Lord, Michiel Staessen, Drue Spackman, Anthony Shireman, Matthew M Caya, Andrew Ballard, Seth Thornberry, Oskar Bley, Tomáš Fejfar, Paul M Jones, Nicholas Calugar, Rob Allen, Marc Bennewitz (private), Christoph Hochstrasser, Sascha-Oliver Prolic, Luiz Damim, Alexander Tukai, Kazusuke Sasezaki, Guillaume Métayer, Maxell, Pieter, Konr Ness, Keith Pope, Toby Hart Dyke, H Hatfield, Kim Blomqvist, Torio Farazdagi, Chris Morrell, Ken Chou, Antoine Hedgecock, Christoph Rust, Wim Godden, Andrej Baranov, Patrick Günther, Matt Cockayne, Josh Butts, Till Klampaeckel, Sebastian Krebs, Emmanuel Bouton, Mickael Perraud, Aleksey 'Xerkus' Khudyakov, Richard Tuin, Denis Portnov, Simon Griffiths, Andreas Möller, Wil Moore III (wilmoore), Goran Juric, Mike Willbanks, Taiwen Jiang, Aldemar Bernal, Marco Pivetta, Oleg Lobach, Àlex Corretgé, Anton Stöckl, Jurian Sluiman, Ralf Eggert, Albert Varaksin, Antonio J García Lagar, Alex Pogodin, bullfrogblues, Tomoaki Kosugi, David Weinraub, Václav Vaník, Frank Brückner, Constantin Ehrenstein, Tony Nelson, Matthew Weier O'Phinney, Alex, Mike A., Dennis Winter, Matej Szendi, Kai Uwe, Enrico Zimuel, Thomas Deutschmann, Alayn Gortazar

]]></ac:plain-text-body></ac:macro>

<p><br class="atl-forced-newline" /></p>
<hr />
<p><br class="atl-forced-newline" /></p>

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

Naming for Trait Types
Choices Your Vote Current Result: (82 Total Votes) Voters

1) Suffixed with 'Trait' (ralph's proposal); ie: ClientAwareTrait

(61 votes, 74%)

Ralph Schindler, Chris Antoine, Rossi Mario, Evan Coury, Kyle Spraggs, Pádraic Brady, Mike A., Mickael Perraud, Stewart Lord, Michiel Staessen, Richard Tuin, Drue Spackman, Anthony Shireman, Denis Portnov, Matthew M Caya, Simon Griffiths, Andreas Möller, Oskar Bley, Goran Juric, Wim Godden, Paul M Jones, Taiwen Jiang, Aldemar Bernal, Andrej Baranov, Marco Pivetta, Nicholas Calugar, Rob Allen, Oleg Lobach, Ralf Eggert, Antonio J García Lagar, Àlex Corretgé, Frank Brückner, Anton Stöckl, Luiz Damim, Alexander Tukai, Ben Scholzen, Albert Varaksin, Guillaume Métayer, bullfrogblues, Pieter, Kai Uwe, David Weinraub, Konr Ness, Toby Hart Dyke, Václav Vaník, Constantin Ehrenstein, Tony Nelson, H Hatfield, Matthew Weier O'Phinney, Kim Blomqvist, Torio Farazdagi, Chris Morrell, Alex, Ken Chou, Antoine Hedgecock, Dennis Winter, Matej Szendi, Enrico Zimuel, Christoph Rust, Alayn Gortazar, Aleksey 'Xerkus' Khudyakov

2) Prefixed with 'Trait'; ie: TraitClientAware

(4 votes, 4%)

Matthew Larson, Tomáš Fejfar, Mike Willbanks, Keith Pope

3) No prefix, no suffix; ie: ClientAware

(13 votes, 15%)

Seth Thornberry, Wil Moore III (wilmoore), Marc Bennewitz (private), Christoph Hochstrasser, Patrick Günther, Matt Cockayne, Alex Pogodin, Josh Butts, Maxell, Andrew Ballard, Sebastian Krebs, Till Klampaeckel, Emmanuel Bouton

4) Traits inside a sub-namespace, no prefix, no suffix; ie: SubNamespace\ClientAware

(4 votes, 4%)

Artur Bodera, Sascha-Oliver Prolic, Kazusuke Sasezaki, Tomoaki Kosugi

All voters:

Ralph Schindler, Chris Antoine, Rossi Mario, Evan Coury, Kyle Spraggs, Pádraic Brady, Mike A., Mickael Perraud, Stewart Lord, Michiel Staessen, Richard Tuin, Drue Spackman, Anthony Shireman, Denis Portnov, Matthew M Caya, Simon Griffiths, Andreas Möller, Oskar Bley, Goran Juric, Wim Godden, Paul M Jones, Taiwen Jiang, Aldemar Bernal, Andrej Baranov, Marco Pivetta, Nicholas Calugar, Rob Allen, Oleg Lobach, Ralf Eggert, Antonio J García Lagar, Àlex Corretgé, Frank Brückner, Anton Stöckl, Luiz Damim, Alexander Tukai, Ben Scholzen, Albert Varaksin, Guillaume Métayer, bullfrogblues, Pieter, Kai Uwe, David Weinraub, Konr Ness, Toby Hart Dyke, Václav Vaník, Constantin Ehrenstein, Tony Nelson, H Hatfield, Matthew Weier O'Phinney, Kim Blomqvist, Torio Farazdagi, Chris Morrell, Alex, Ken Chou, Antoine Hedgecock, Dennis Winter, Matej Szendi, Enrico Zimuel, Christoph Rust, Alayn Gortazar, Aleksey 'Xerkus' Khudyakov, Matthew Larson, Tomáš Fejfar, Mike Willbanks, Keith Pope, Seth Thornberry, Wil Moore III (wilmoore), Marc Bennewitz (private), Christoph Hochstrasser, Patrick Günther, Matt Cockayne, Alex Pogodin, Josh Butts, Maxell, Andrew Ballard, Sebastian Krebs, Till Klampaeckel, Emmanuel Bouton, Artur Bodera, Sascha-Oliver Prolic, Kazusuke Sasezaki, Tomoaki Kosugi

]]></ac:plain-text-body></ac:macro>

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Feb 01, 2012

    <p>So sad that AClient IClient and TClientAware don't have many votes. The others are too long IMO and without prefixes it's not clear what's what when scanning the files... </p>

    <p>What is/was the argument against them? </p>

    1. Feb 03, 2012

      <p>They look like sigils, which gives them an implied meaning, but not an inherent one (which natural language provides).</p>

      <p>Also, you can always import to shorter names <em>within</em> your code.</p>

    2. Feb 07, 2012

      <p>Me too, initially (and first in to vote for IClient, against the flow of other votes). I gave it some thought though. Consistency across languages/platforms won me over.</p>

      <p>Long names are a PITA when it comes to documentation and code listing. They result in early line-wraps and horribly spaced justification. With few abbreviated types there seems no reason for complicating matters with long form.</p>

      <p>Interface, Traits and Abstract – all we need is the 'P' for a full set!</p>

  2. Feb 03, 2012

    <p>Before you vote, make sure you read the PEAR2 Class Naming Conventions found at</p>

    <p><a href="https://wiki.php.net/pear/rfc/pear2_class_naming">https://wiki.php.net/pear/rfc/pear2_class_naming</a></p>

    <p>which have been incorporated into the PEAR2 standards, found at</p>

    <p><a href="https://wiki.php.net/pear/rfc/pear2_standards">https://wiki.php.net/pear/rfc/pear2_standards</a></p>

    <p>PEAR suggests the following</p>

    <blockquote>
    <ul>
    <li>syntax/scope hints in the class name must be suffixed rather than prefixed, e.g. abstract class FooAbstract </li>
    <li>the suffix should be a full legible word, not a cryptic letter/abbreviation (e.g. FooAbst, FooA)</li>
    <li>a suffix for an Abstract or Interface class name is <strong>required</strong></li>
    </ul>
    </blockquote>

    <p>Of course, you can still change your vote to something that makes sense, as suggested by PEAR.</p>