@package și @subpackage: cum să le folosești cu temele derivate

23 ian. 2013, 16:44:36
Vizualizări: 14.1K
Voturi: 8

Problema mea este legată de @package și @subpackage.

Am vizitat link-ul sugerat (Ce reprezintă comentariile package și subpackage?). Acolo nu am găsit nimic aplicabil problemei mele, dar am găsit acest răspuns: "Acestea sunt tag-uri PHPDoc - folosite pentru a genera documentație automată și semnificativă pentru cod". Iată ce am momentan:

/**

* Conține o listă cu toate action hook-urile personalizate și funcțiile corespunzătoare definite pentru abc.

* Acest fișier este inclus în functions.php:

*

* @package theme-name

* @subpackage Functions

*/

Aceasta nu este o temă derivată din twenty ten. Există un folder în directorul theme-name: functions. Tema mea derivată se află într-un alt folder. Am salvat fișierul functions.php în folderul temei mele derivate. Nimic nu se schimbă (conținutul) indiferent dacă modific subpackage cu numele folderului meu sau las cuvântul Functions acolo.

Ce ar trebui să pun aici?

/**

* Conține o listă cu toate action hook-urile personalizate și funcțiile corespunzătoare definite pentru abc.

* Acest fișier este inclus în functions.php:

*

* @package theme-name

* @subpackage ???

*/
0
Toate răspunsurile la întrebare 4
0

Regulă de bază: codul tău este împachetat (adică ambalat) împreună cu codul indicat de @package? Dacă nu, atunci folosești o valoare incorectă pentru @package.

În cazul majorității temelor, acest lucru este simplu:

  • Temele incluse în nucleul WordPress folosesc @package: WordPress și @subpackage Nume-Tema, deoarece sunt ambalate și distribuite împreună cu WordPress
  • Toate celelalte teme folosesc @package: Nume-Tema, deoarece sunt ambalate și distribuite separat de WordPress.

Toate temele reprezintă un strat de abstractizare al WordPress-ului și se bazează pe WordPress pentru a fi afișate. Dar această dependență nu le face un @subpackage al WordPress-ului.

Aș aplica această regulă și pentru temele copil. Ele sunt un pachet independent, ambalat și distribuit separat de tema părinte/șablon pe care se bazează.

23 ian. 2013 17:13:28
2

Exact cum spune documentația originală pe care ai găsit-o, acestea sunt tag-uri PHPDocumenter. Ele nu afectează codul tău, așa că modificarea lor nu va schimba nimic.

Cu toate acestea, ele sunt utile pentru instrumentele automate care analizează codul și creează documentație ușor de înțeles pentru oameni. Acest PHPXref este un exemplu de versiune analizată a WordPress.

În WordPress, @package este de obicei WordPress. @subpackage este modulul pe care îl analizezi. De exemplu, partea de sus a clasei WP_Http conține:

/**
 * API simplu și uniform pentru cereri HTTP.
 *
 * Standardizează cererile HTTP pentru WordPress. Gestionează cookie-uri, codificarea și decodificarea gzip, 
 * decodificarea fragmentelor, dacă HTTP 1.1 și diverse alte implementări complexe ale protocolului HTTP.
 *
 * @link http://trac.wordpress.org/ticket/4779 Propunere pentru API HTTP
 *
 * @package WordPress
 * @subpackage HTTP
 * @since 2.7.0
 */

În cazul tău, @package ar fi numele temei tale. @subpackage este opțional și relevant doar dacă ai alte module în interiorul temei - fișierul tău functions.php nu este chiar un subpachet al temei, așa că aș omite acest tag în acest caz.

Temele copil nu trebuie să moștenească structura @package/@subpackage de la părinți. Folosește ceea ce are sens pentru proiectul tău, deoarece, în realitate, aceste comentarii și note sunt specifice pentru a-i ajuta pe alții să înțeleagă structura proiectului tău.

23 ian. 2013 16:59:17
Comentarii

Bună, Vă mulțumesc tuturor pentru răspunsuri. Tocmai am lăsat numele pachetului ca fiind numele temei mele (sper că am înțeles corect).

Fișierul .php pe care îl am se află într-un folder de funcții în tema mele copil, așa cum este și în tema părinte. Nu am reușit să-l fac să funcționeze, așa că am crezut că problema este legată de modul în care pachetul și subpachetul se referă la alte elemente.

Din ceea ce spuneți, nu este cazul și tot nu funcționează. Cum pot face ca fișierul .php să funcționeze, vă rog? (Sau ar trebui să fie un subiect nou?)

Marie Marie
24 ian. 2013 01:35:27

Folosești include() sau require() în fișierul tău principal functions.php pentru a include noul fișier PHP? Dacă nu, atunci acesta nu va fi niciodată încărcat. Aș sugera să deschizi un subiect nou, dar includerea fișierelor PHP nu este o problemă specifică WP; așa că, dacă deschizi un subiect nou, te-aș încura să o faci pe Stack Overflow.

EAMann EAMann
24 ian. 2013 17:48:59
0

Tag-ul @package specifică pachetele pentru a grupa clase sau funcții și definește, de asemenea, un temă pentru WordPress. Un @subpackage este copilul temei, precum o funcționalitate pentru o cerință specifică sau un temă copil, un subpachet.

Sugestie mică pentru documentația tag-urilor phpdoc: http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_tags.pkg.html

23 ian. 2013 16:57:42
0

Aceștia sunt tag-uri de documentare. Le folosești pentru a grupa bucăți de cod înrudite în scopul documentării codului. Wikipedia are un grafic util cu diferitele tag-uri disponibile. Documentația oficială se găsește la http://www.phpdoc.org/.

Nu se întâmplă nimic (schimbarea conținutului) nici atunci când schimb numele subpachetului cu numele folderului meu, nici dacă las cuvântul "Functions" acolo.

Corect. Nu se întâmplă nimic. Acestea sunt doar pentru documentarea codului. Nu vei observa nicio diferență până nu rulezi codul prin scriptul PHPDoc, care va genera documentația dar nu va schimba funcționarea codului tău.

Folosește @package pentru a identifica tema ta. Folosește @subpackage, dacă dorești, pentru a grupa funcții în cadrul temei - de exemplu un fișier plin de widget-uri specifice temei sau ceva similar.

Care este diferența dacă includ sau nu adnotarea @package?

http://codex.wordpress.org/Inline_Documentation

23 ian. 2013 17:02:13