Newsgroup: it.comp.www.php
Titolo: problema con phpdoc

$ phpdoc -d src -t docs
PHP Fatal error:  Uncaught 
Doctrine\Common\Annotations\AnnotationException: You have to enable 
opcache.load_comments=1 or zend_optimizerplus.load_comments=1. in 
/usr/share/php/phpDocumentor/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php:193
 
Perchè?
Ho cercato su internet ma non ne sono venuto a capo.


Non conosco molto bene e non uso Doctrine, ma so che dipende 
strettamente dalle annotations nei commenti delle classi che lo 
implementano.
 
Se stai usando opcache (o un altro ottimizzatore), probabilmente i 
commenti vengono rimossi in fase di compilazione, e Doctrine non sa come 
andare avanti.
 
È uno dei motivi per cui non uso Doctrine, a dire il vero... :P
 
Bye.
 

Perchè?
 
Perché stai usando un trabagài che legge i COMMENTI, ma stai anche usando un
altro oggetto (APC, opcache, Zend Optimizer...) che in memoria carica solo i
sorgenti SENZA commenti per occupare meno spazio.
 
Insieme, le due cose non possono funzionare.
 
Se hai opcache digli di caricare i commenti, se hai ZendOptPlus anche. Tutti
gli altri casi significano che hai qualcosa che se magna li commenti.
 
Leonardo
-- 
 
A terrible beauty is born.
                                     - W. B. Yeats, Easter 1916

 gli altri casi significano che hai qualcosa che se magna li commenti.
 
E quando c'è a che fare con questi dannati tools...
Come al solito perdonate l'ignoranza, ma da dove dovrei iniziare?
Cosa devo controllare, cosa devo connfigurare?


Nella configurazione del PHP, eventualmente phpinfo, vedi se fa riferimento a "opcache" o
a "zend optimizer (plus)". Nel caso, fra i file di configurazione - qui da me sono dentro
a /etc/php/apache/conf.d/<nomefile>.ini - cerca se c'è opcache o zend, e disattivali.
 
Alle perse, io spesso cerco con grep a tappeto, faccio prima che a ricordarmi le cose:
 
	grep -r opcache /etc
 
Su Ubuntu credo ci sia un comando, per disabilitare i moduli di PHP, ma non ricordo quale
sia (forse phpdismod?).


 sia (forse phpdismod?).
 
$ phpdismod
WARNING:
usage: phpdismod [ -v ALL|php_version ] [ -s ALL|sapi_name ] module_name 
[ module_name_2 ]
 
naturalmente non vado oltre per evitare di far danni (attendo eventuali 
precisazioni)
 

 vedi le ultime due righe
 
dimenticavo, la versione di php che sto usando però è la 7, non la 5 
(come indicato da grep)

/etc/php5/cli/php.ini:;opcache.load_comments=1
 
OK, direi che il problema sia quello. Si tratta di togliere il ";" che commenta le
righe, in entrambi i file (meglio non avere due configurazioni diverse, anche se a
quanto so CLI non lo usa realmente, opcache).
 
E poi riavviare apache (service apache2 reload, o apache2ctl reload).
 
Prima, per sicurezza, dagli
 
	apache2ctl configtest
 
per essere sicuro che la sintassi sia OK. Se non lo è, NON riavviare.



fatto, ma il problema non si è risolto; come già detto la configurazione 
mi sembra riferita a php5 (io sto usando la 7)

mi sembra riferita a php5 (io sto usando la 7)
 
Allora bisogna che tu controlli la configurazione di PHP7. Non so dove sia, perché
a quanto so non è in nessuna distribuzione standard.
 
Prova magari a creare una paginetta con soltanto
 
	<?php
		phpinfo();
	?>
 
e vedere nella pagina se ci sono riferimenti a opcache od Optimizer, e dove sono i
relativi file di configurazione.


Il 17/05/2016 19:52, Leonardo Serni ha scritto:
 
http://postimg.org/image/kcivgo3td/
 

 
http://postimg.org/image/kcivgo3td/
 
 
poi c'è /etc/php/7.0/apache2/conf.d/10-opcache.ini che contiene
 
; configuration for php opcache module
; priority=10
zend_extension=opcache.so
 


OK, prova in quel file a mettere
 
opcache.load_comments=1
 
e, se non funziona, commenta zend_extension=:
 
; zend_extension=opcache.so
 
per disattivare opcache del tutto. Mi sembra non ci siano molte alternative.



Ho dovuto disattivare tutta l'estensione, possibile che non c'è modo di 
attivare la lettura dei commenti? bah :(
 
Ora cmq funziona, ma invece dei file html, è possibile creare un file 
docs o pdf?

docs o pdf?
 
Da HTML a PDF lo fai in automatico sia con Chrome che con Firefox.
 
Se no ci dovrebbe essere wkhtml2pdf, e altre opzioni.


 Se no ci dovrebbe essere wkhtml2pdf, e altre opzioni.
 
come sopra, o non ho guardato bene nelle opzioni?
 
 

come sopra, o non ho guardato bene nelle opzioni?
 
wkhtml2pdf lavora da linea di comando, sicché si può provare a usarlo come argomento
di find -exec. Mi sa che sia lento in maniera spaventosa, però.
 
Non so se ci siano molte possibilità free di fare quello che chiedi, mi spiace.


 Non so se ci siano molte possibilità free di fare quello che chiedi, mi spiace.
 
un manuale (unico) con più pagine, capitoli, sezioni..., facile da 
scaricare/distribuire.
mai visto uno? su internet c'è ne sono milioni

mai visto uno? su internet c'è ne sono milioni
 
Sì, sì, ho capito _COSA_ vuoi fare. E' il _COME_ farlo che è il problema. Quando mi è
capitato, ho usato uno strumento per costruire file ePub, che sono XHTML zippati, per
cui esistono anche convertitori a PDF. Però, me lo sono dovuto fare su misura :-(
