User Tools

Site Tools


en:dev:284:registry

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:dev:284:registry [07.08.2015 06:39] – [Overview] translated thrid paragraph mrbasemanen:dev:284:registry [26.09.2023 07:14] (current) – [Changed identifiers] Manuela v.d.Decken
Line 1: Line 1:
-FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)// 
- 
 ====== The Registry (WbAdaptor) ====== ====== The Registry (WbAdaptor) ======
 Programming without **global** constants and variables. Programming without **global** constants and variables.
Line 10: Line 8:
 Global constants (as well as global variables), used within classes, break up their clear encapsulation and can prevent the reusability of the code. See 'Basics of object-oriented programming'. Global constants (as well as global variables), used within classes, break up their clear encapsulation and can prevent the reusability of the code. See 'Basics of object-oriented programming'.
  
-Globale Konstanten sind ja, wie schon seit langem bekannt, ab dieser Version deprecated, sprich unerwünscht. Siehe: [[dev:284:deprecated|Deprecated-Liste Eintrag 10 v. 12.2013]] +Global constants are, as has long been stated, from this version on deprecated, that is undesirable. See: [[dev:284:deprecated|Deprecated-List Entry 10 from 12.2013]].
- +
-Global constants are, as has long been stated, from this version on deprecated, that is undesirable. See: [[en:dev:284:deprecated|Deprecated-List Entry 10 from 12.2013]].+
  
-Selbstverständlich funktioniert das jetzt nicht sodass man alle bisherigen Konstanten einfach nur Ersatzlos streichtDas ist schlichtweg unmöglichZumindest im ersten Schritt stellt die Klasse '**WbAdaptor**' jedoch Eigenschaften bereit, die den bisherigen Konstanten ähneln.+Of coursediscarding all previous constants without any replacement is clearly not a feasible approachThat's simply impossibleAt least in the first step, the class '**WbAdaptor**' makes properties available that are similar to the previous constants.
  
-Eine wesentliche Änderung hat sich bei der Schreibweise der Bezeichner ergeben:\\ +A significant change has arisen about the spelling of the identifier:\\ 
-Wurden die Bezeichner bisher ausschließlich in Großbuchstaben geschrieben und mehrere Einzelworte durch einen Unterstrich **_** getrenntso bestehen die neuen Bezeichner zwar weiterhin aus der selben Zeichenfolgejedoch in '**//StudlyCaps//**'-Schreibweise ohne Trennzeichen zwischen einzelnen Wörtern.+The identifiers have been written entirely in capital letters and separated several individual words with an underscore **_**, the new identifiers however still consist of the same sub stringsbut now they are  written in '**//StudlyCaps//**' notation without delimiters between words.
  
-__Beispiel:__ aus **DEFAULT_TEMPLATE** wird jetzt **DefaultTemplate**+__Example:__ **DEFAULT_TEMPLATE** becomes **DefaultTemplate** now
  
-Die Transformation der Bezeichner erfolgt automatisch beim Einlesen in die Klasse WbAdaptor.+The transformation of the identifier is performed automatically when reading in the class WbAdaptor.
  
-Soweit so gutDamit es nicht ganz so einfach wirdhat sich bei einem runden Dutzend ehemaliger Konstanten der Bezeichner(Schlüsselkomplett verändert und auch teilweise der Inhalt!!+So far so goodTo make it not too simplefor about a dozen former constants the identifier (keyand also partially the content has completely changed!!
  
 +===== Changed identifiers =====
  
-===== Geänderte Bezeichner ===== +List of new identifiers and examples of the current contents.\\ 
-  +FIXME (notethis list is not complete!)
-Liste mit neuen Bezeichnern und Beispielen des jetzigen Inhaltes.\\ +
-FIXME (Achtungdiese Liste ist nicht vollständig!)+
  
-^alte Konstante   ^neuer Schlüssel    ^Inhalt (Beispielhaft)  ^ +^old constant   ^new key    ^content (example)  ^ 
-|{neu eingeführt}  |Db              |das aktuelle Datenbankzugriffsobjekt           +|NEW               |getDatabase()   |the current object for accessing the database  
-|{neu eingeführt}  |Trans           |das aktuelle Translation-Objekt                +|NEW               |getTranslate()  |the current translation object                 
-|{neu eingeführt}  |App             |das aktuelle Applikations-/Core-Objekt         |  +|NEW               |getApplication() |the current application/core object ($wb or $admin) |  
-|{neu eingeführt}  |PageId          |die ID der aktuellen Seite                     | +|NEW               |getRequester()  |the current requester Objekt                  | 
-|{neu eingeführt}  |BlockId         |die ID des aktuellen Blockes                   +|NEW               |PageId          |the ID of the current page                     | 
-|{neu eingeführt}  |SectionId       |die ID der aktuellen Section                   |+|NEW               |BlockId         |the ID of the current block                    
 +|NEW               |SectionId       |the ID of the current section                  |
 |WB_URL            |AppUrl          |http: ⁄⁄ example.com/wb/                                                     | |WB_URL            |AppUrl          |http: ⁄⁄ example.com/wb/                                                     |
-|WB_REL            |AppRel          |/wb/                                                                         +|WB_REL            |AppRel          |/wb/  (absolute path from DOCUMENT_ROOT, for use as a relative URL)                                                                      
-|WB_PATH           |AppPath         |/var/www/httpdocs/wb/ \\ in Windows alternativ  ('c:/var/www/httpdocs/wb/' |+|WB_PATH           |AppPath         |/var/www/httpdocs/wb/ \\ alternatively, in Windows  ('c:/var/www/httpdocs/wb/' |
 |ADMIN_URL         |AcpUrl          |http: ⁄⁄ example.com/wb/admin/                                               | |ADMIN_URL         |AcpUrl          |http: ⁄⁄ example.com/wb/admin/                                               |
 |ADMIN_REL         |AcpRel          |/wb/admin/                                                                   | |ADMIN_REL         |AcpRel          |/wb/admin/                                                                   |
Line 47: Line 43:
 |TEMPLATE          |Template        |MyTemplate             | |TEMPLATE          |Template        |MyTemplate             |
 |TEMPLATE_DIR      |TemplateDir     |templates/MyTemplate/  | |TEMPLATE_DIR      |TemplateDir     |templates/MyTemplate/  |
-|{neu eingeführt}  |TemplateUrl     |http: ⁄⁄ example.com/wb/templates/MyTemplate/ +|NEW               |TemplateUrl     |http: ⁄⁄ example.com/wb/templates/MyTemplate/ 
-|{neu eingeführt}  |TemplateRel     |/wb/templates/MyTemplate/ +|NEW               |TemplateRel     |/wb/templates/MyTemplate/ 
-|{neu eingeführt}  |TemplatePath    |/var/www/httpdocs/wb/templates/MyTemplate/  |+|NEW               |TemplatePath    |/var/www/httpdocs/wb/templates/MyTemplate/  |
 |ADMIN_DIRECTORY   |AcpDir          |admin/                                                                       | |ADMIN_DIRECTORY   |AcpDir          |admin/                                                                       |
 |PAGES_DIRECTORY   |PagesDir        |pages/                                                                       | |PAGES_DIRECTORY   |PagesDir        |pages/                                                                       |
Line 56: Line 52:
 |WB_REVISION       |AppRevision     |2060                                                                         | |WB_REVISION       |AppRevision     |2060                                                                         |
 |WB_SP             |AppServicePack  |SP1                                                                          | |WB_SP             |AppServicePack  |SP1                                                                          |
-|{neu eingeführt}  |AppName         |WebsiteBaker                                                                 | +|NEW               |AppName         |WebsiteBaker                                                                 | 
-|STRING_DIR_MODE   |DirModeString   | %%rwxrwxr-x%%   (textuelle Darstellungentspricht 0775 Oktal)                                                           | +|STRING_DIR_MODE   |DirModeString   | %%rwxrwxr-x%%   (textual representationcorresponds to 0775 octal)                                                           | 
-|OCTAL_DIR_MODE    |DirModeOctal    | %%509%% (gespeicherter Integerentspricht 0775 Oktal)  | +|OCTAL_DIR_MODE    |DirModeOctal    | %%509%% (stored integercorresponds to 0775 written in octal)  | 
-|STRING_FILE_MODE  |FileModeString  | %%rw-rw-r--%%   (textuelle Darstellungentspricht 0664 Oktal)                                                           | +|STRING_FILE_MODE  |FileModeString  | %%rw-rw-r--%%   (textual representationcorresponds to 0664 octal)                                                           | 
-|OCTAL_FILE_MODE   |FileModeOctal   | %%436%% (gespeicherter Integerentspricht 0664 Oktal)  |+|OCTAL_FILE_MODE   |FileModeOctal   | %%436%% (stored integercorresponds to 0664 written in octal)  |
  
-Wer die Liste aufmerksam durchschautwird ein paar neue Gesetzmäßigkeiten erkennen:+Who looks attentively at the listwill recognize a few new laws:
  
-Die Zeichenfolge **WB_** wurde zu **App** (hat nichts mit irgendwelchen APP-Stores zu tun!!), es ist einfach nur die ursprüngliche Abkürzung für Applikation => Anwendung => Programm.\\ +The string **WB**_ became **App** (has nothing to do with any of these App Stores !!), it's just the original abbreviation for application =>  program.\\ 
-Die Zeichenfolge **ADMIN_** wurde zu **Acp** was **A**dmin**C**ontrol**P**anel bedeutetda die Funktionen und Bezeichnungen 'Backendund 'Admin-Tools' in einer der Folgeversionen abgeschafft bzw. ersetzt werden.\\+The string **ADMIN_** became **Acp** which is the abbreviation for **A**dmin **C**ontrol **P**anel, because the functions and names 'backendand 'admin toolswill be abolished or replaced in one of the subsequent versions.\\
  
-Unabhängig von den geänderten Präfixes gelten folgende Regeln für Endungen+Regardless of the changed prefixes, the following rules apply for extensions
-  * xxx**Url** beinhaltet grundsätzlich eine vollwertige URL mit Protokollangabe +   * xxx**Url** basically includes a full URL with protocol specification 
-  * xxx**Path** beinhaltet einen vollwertigen Pfad ausgehend vom Wurzelverzeichnis des physikalischen Dateisystems und beginnt **immer** mit einem Slash** / ** bzw. **c:/** unter Windows. +   * xxx**Path** includes a full path starting from the root directory of the physical file system and **always** begins with a slash ** / ** and **c:/** for Windows. 
-  * xxx**Rel** beinhaltet einen absoluten Pfadausgehend von DOCUMENT_ROOT und beginnt **immer** mit einem Slash** / ** +   * xxx**Rel** includes an absolute pathstarting from DOCUMENT_ROOT and **always** begins with a slash ** / ** 
-  * xxx**Dir** beinhaltet ein oder mehrere aufeinanderfolgende Verzeichnisnamenund darf **nicht** mit einem Slash** / ** beginnen. +   * xxx**Dir** contains one or more successive directory namesand **must not** start with a slash ** / **.
-__Für alle Angaben gemeinsam gilt:__ +
-  * Als PATH_SEPERATOR ist ausschließlich der Slash** / ** zugelassen. Anpassungen können problemlos erfolgen mit\\ <php> $sPath = str_replace('\\', '/', $sPath); </php> +
-  * Ist das letzte Element einer URL-,Rel-, Path-, oder Dir-Angabe ein Verzeichnis, so **muss** die Angabe mit einem Slash** / ** enden.\\ +
-  * Um sicher zu stellen, dass ein Verzeichnis mit einem einzelnen Slash** / **abgeschlossen wird genügt die kurze Sequenz\\ <php> $sPath = rtrim($sPath, '/').'/'; </php> +
-  * Führende Slashes** / **werden entfernt mit\\ <php>  $sPath = ltrim($sPath, '/');  </php>+
  
-ALT => NEU Beispiele+__for all statements in common the following rules apply:__ 
-|     ^ Schlüssel        ^ Wert                     ^ +  * As PATH_SEPERATOR only the slash** ** is allowedAdjustments can be made easily with\\ <code> $sPath = str_replace('\\', '/', $sPath); </code> 
-^alt  | WB_URL           | http: ⁄⁄ example.com/wb  | +  * If the last element of a URL, Rel, Path-, or Dir-specified directory, the indication must terminate on a slash** **.\\ 
-^neu  | AppUrl           | http: ⁄⁄ example.com/wb| +  * To ensure that a directory path is terminated with a single slash** **the short sequence is sufficient\\ <code> $sPath = rtrim($sPath, '/').'/'; </code> 
-^alt  | ADMIN_REL        | /wb/admin                | +   Leading slashes** **are removed by\\ <code>  $sPath = ltrim($sPath, '/');  </code>
-^neu  | AcpRel           /wb/admin              |  +
-^alt  | PAGES_DIRECTORY  /pages                   | +
-^neu  | PagesDir         | pages                  | +
-^alt  | TEMPLATE_DIR     | http: ⁄⁄ example.com/wb/templates/MyTemplate +
-^neu  | TemplateDir      | templates/MyTemplate/    |+
  
 +OLD => NEW example:
 +|     ^ key        ^ value                     ^
 +^old  | WB_URL           | http: ⁄⁄ example.com/wb  |
 +^new  | AppUrl           | http: ⁄⁄ example.com/wb/ |
 +^old  | ADMIN_REL        | /wb/admin                |
 +^new  | AcpRel           | /wb/admin/               
 +^old  | PAGES_DIRECTORY  | /pages                   |
 +^new  | PagesDir         | pages/                   |
 +^old  | TEMPLATE_DIR     | http: ⁄⁄ example.com/wb/templates/MyTemplate  |
 +^new  | TemplateDir      | templates/MyTemplate/    |
  
-===== Anwendung von WbAdaptor ===== +===== Application of WbAdaptor ===== 
-Diese Klasse ist von überall zu erreichenEs genügt völlig, die einzig existierende, aktive Instanz der Klasse mit\\ <php> $oReg = WbAdaptor::getInstance(); </phpin den aktuellen Sichtbarkeitsbereich zu importierenNoch besser ist jedoch die Nutzung von Dependency-Injectionalso die Übergabe der Instanz von außen an die Funktion oder Klasse.+This class can be reached from anywhereIt is sufficient to import that only existing active instance of the class with\\ <code> $oReg = \bin\WbAdaptor::getInstance(); </codeto import into the current scope 
 +But even better is the use of dependency injectioni.e. the transfer of the instance from outside to the function or class.
  
-:!: Es wird dringend empfohlen, den Bezeichner //**$oReg**// für die Instanz des WbAdaptor-Objektes zu verwenden um eine leichtere und über alle Programmteile durchgängige Lesbarkeit zu erreichen.+:!: It is strongly recommended that the identifier //**$oReg**// is used for the instance of the WbAdaptor object in order to achieve a better and consistent readability of all program components.
  
-Auch der Abruf der einzelnen Werte ist recht unproblematisch:\\ +Also the request of the individual values quite straightforward:\\ 
-<php> echo $oReg->TemplateDir.'images/logo.png'; </php> \\ +<code> echo $oReg->TemplateDir.'images/logo.png'; </code> \\ 
-Ausgabe:  ''templates/myTemplate/images/logo.png''+Output:  ''templates/myTemplate/images/logo.png''
  
-Was nach außen nicht sichtbar istist der Umstand dass alle abrufbaren Werte in zwei Basis-Gruppen abgelegt sind+What is not visible from the outsidethe fact is that all retrievable values are stored in two basic groups
-  * //System//  ⇒ das sind alle Werte, die bei unveränderten Grundeinstellungen bei jedem Scriptaufruf **immer** gleich sind+  * //System// -> these are all values that are **always** the same at constant, for basic settings constant for each script call
-  * //Request// ⇒ alle anderen Wertedie je nach SeiteBenutzerRequestmodus oder sonstigen Kriterien unterschiedliche Werte haben können+  * //Request// -> all other valueswhich candepending on the pageusers who request mode or other criteria have different values
-Die //System//-Werte sind geschützt und können **nicht** durch //Request//-Werte oder anderes überschrieben werden.+The system values are protected and can **not** be overridden by //Request// values or anything else.
  
  
en/dev/284/registry.1438929552.txt.gz · Last modified: 07.08.2015 06:39 by mrbaseman