@access kennt keine Entsprechung im PHP Sprachumfang.
Zugriffsrechte können im übertragenen Sinne in der prozeduralen und in der
objektorientierten Programmierung verwendet werden.
Syntax und Scope
|
Syntax
|
@access (public|private)
|
Scope
|
class, function, var, define, module
|
Public bezeichnet eine Deklaration auf die alle Clients zugreifen können.
Als private werden alle Deklarationen bezeichnet, auf die nur
die Klasse bzw. das Modul selbst zugreifen dürfen.
Das Keyword "protected" fehlt in der aktuellen PHPDoc Version.
Protected kennzeichnet Deklarationen, auf die die
Klasse bzw. das Modul, etwaige Freunde und Unterklassen zugegreifen dürfen.
An Stelle von "protected" ist "private" zu benutzen.
Freunde könnten als alle Klassen und Module aus der eigenen Package
definiert werden. Eine Definion sollte in den Coding Conventions
erfolgen.
Bedeutung
|
- public
- keine Zugriffseinschränkung
- private
- eigene Klasse
- Unterklassen
- Elemente des Moduls
- (Elemente der Package)
|
Verwandtes
|
Java
|
Keywords: public, private, protected
Beispiel: public methodname() {};
|
C++
|
Keywords: public, private, protected
Beispiel: public:void methodname();
|
C
|
Keywords: extern, static
Beispiel: extern void functionname() {}
|
Werden keine Zugriffrechte angegeben, so wird private angenommen.
Eine Ausnahme bilden Konstruktoren. Konstruktoren werden von PHPDoc immer
als public dargestellt unabhängig von der Dokumentation - eine Fehldokumentation
wird an dieser Stelle erkannt.
Sollte das eigene Projekt das Konzept der Zugriffsrechte nicht
unterstützen, kann aus den benutzten Templates der Platzhalter {access} entfernt werden
damit die erzeugte HTML Dokumentation "public" und "private" nicht darstellt.
Meist wird als Naming Convention vorgeschlagen, den Namen von
privaten Elementen mit einem Unterstrich (_) zu beginnen.
Codebeispiel
|
/**
* Oberklasse der geometrischen Figuren
* @abstract
* @access public
*/
class geomfigure {
/**
* Skalierungsfaktor bei der Darstellung.
* @abstract
*/
var $skale;
/**
* Zeichnet das Objekt.
* @abstract
* @access public
*/
function paint() {
;
}
}
|
Generierte Dokumentation
|
public abstract class geomfigure
public abstract void paint( )
private abstract unknown $skale
|