[Risolto] Zend Framework ...mah?

Ciao di nuovo a tutti.... dopo l`avrei bisogno di un altro aiutino, stavolta legato al framework Zend.

Essendo un neofita di PHP sto leggendo tutto passo passo....dall`inizio...

Ma si presentano una serie di porblemi che non riesco a risolvere.

Ho creato questa struttura di progetto:

c:\xampp\htdocs\ZendProject

data

- logs

- tmp

- upload-files

htdocs

- .htaccess

- index.php

include

- Controllers

- - IndexController.php

- Zend

templates

Nella cartella Controllers/Zend ho scompattato tutte le librerie del Framework v. 1.10.5

nell index.php scrivo questo codice:

<?php

require_once 'Zend/Loader/Autoloader.php';

Zend_Loader_Autoloader::getInstance();

$controller=Zend_Controller_Front::getInstance();

$controller->setControllerDirectory("../include/Controllers");

$controller->dispatch();

?>

nell`indexAction.php

<?php

class IndexController extends Zend_Controller_Action{

   public function indexAction(){

      echo "Web site home";

   }

}

?>

ecco i problemi iniziali che ho:

1) sembra che le librerie utilizzate realmente siano quelle  in C:\xampp\php\PEAR e non quelle che ho scompattato nella mia cartella Controllers/Zend.  Perche?

2) lanciando l`applicazione sul browser ottengo il seguente errore

Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\xampp\php\PEAR\Zend\Controller\Dispatcher\Standard.php:242 Stack trace: #0 C:\xampp\php\PEAR\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\xampp\htdocs\zend\htdocs\index.php(8): Zend_Controller_Front->dispatch() #2 {main} thrown in C:\xampp\php\PEAR\Zend\Controller\Dispatcher\Standard.php  on line 242

3) come IDE utilizzo Eclipse con plugin per PHP. la riga

require_once 'Zend/Loader/Autoloader.php';

cosi` come tutti gli include nei file di zend mi vengono segnalati  in un path errato

Include filename: 'Zend/Loader/Autoloader.php' doesn't exist in project: /zend

pero` non mi vengono dati errori di classi o metodi non trovati.

Questo non e` proprio un problema, piu che altro una curiosita`. Cioe` come mai viene richiamato l`Autoloader se il path sembra sbagliato?

Se potreste darmi una mano .... vi ringrazio moltissimo

inviato 6 anni fa
ziuccio
modificato 6 anni fa
Mario Santagiuliana
X 0 X
Ciao di nuovo a tutti.... dopo l`avrei bisogno di un altro aiutino

Questo è il tuo primo messaggio...come un saluto del genere?

Per imparare Zend Framework ti consiglio di seguire questa guida:

http://akrabat.com/zend-framework-tutorial/

Usa il modello standard e fai anche riferimento alla quickstart guide ufficiale di zend framework.

---Aggiungo---

Ovviamente si tratta cross-posting:

http://forum.mrwebmaster.it/php/23435-problema-zend-framework-era-zend-framework-mhhh.html#post86196

Questa pratica non è affatto piacevole. L'utente viene ammonito.

risposto 6 anni fa
Mario Santagiuliana
modificato 6 anni fa
X 0 X

Perdonami per la mia presentazione molto sintentica... non sono assiduo frequentatore di forum...

Avevo gia letto il pdf che mi hai consigliato, pero` mi pare cosi ad occhio che  l`applicazione nell`esempio abbia un a struttura un po` differente rispetto ad altre  guide che stavo guardando.

In particolare sto seguendo il libro "Pratical  Web 2.0 Application with PHP" e qulche altro tutorial tipo questo:

http://wosz.net/2008/06/zend-framework-tutorial/...

Riangono pero` i dubbi!

 

risposto 6 anni fa
ziuccio
X 0 X

La guida che ti ho suggerito è aggiornata all'ultima versione disponibile di Zend Framework e sfrutta gli strumenti messi a disposizione di questo.

Il libro che hai indicato non l'ho mai letto.

Dato che dici che frequenti poco i forum ti chiedo di leggere sempre il regolamento di questi prima di scrivere. Ma mi sembra stupido dire "Ciao di nuovo a tutti" quando non hai salutato nessuno prima in un posto.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Beh...leggero' il regolamento ma prima di tutto tendo sempre a considerare che le cose importanti  siano legate al rispetto, all`educazione da tenere (niente insulti, niente parolacce, niente volgarita'...) e anche al non andare  fuori tema. In genere scrivo nei forum quando ho bisogno o quando trovo qualcuno che necessita del mio aiuto.  

Detto cio` ho scritto "Ciao di nuovo a tutti"  in quanto ho fatto un copia e incolla di un altro topic che ho scritto in un altro forum, dato che sto cercando una mano.

Tornando in argomento:

Preferirei capire come si imposta a mano il framework senza utilizzare troppi strumenti messi a disposizione  perche` poi magari funziona tutto pero`  poi se mi chiedono di rifarlo a mano magari con uno standard lievemente differente ...e` bene per me sapere il piu possibile sull`argomento.

Detto cio` ho creato una cartella a parte che contiene la cartella bin.

Ho settato il path da sistema tuttavia zf.bat non parte, neppure se lo eseguo direttamente dentro la cartella.

La cartella bin in questione ha 3 file

zf.bat

zf.php

zf.sh

E` il pacchetto giusto??

risposto 6 anni fa
ziuccio
X 0 X

"Detto ciò" aggiungi alla tua lista oltre a "niente insulti, niente parolacce, niente volgarita'" niente cross-posting.

Preferirei capire come si imposta a mano il framework senza utilizzare troppi strumenti messi a disposizione  perche` poi magari funziona tutto pero`  poi se mi chiedono di rifarlo a mano magari con uno standard lievemente differente ...e` bene per me sapere il piu possibile sull`argomento.

Impara prima a costruire una applicazione standard e poi a fare le dovute personalizzazioni con gli strumenti messi a disposizione del framework. Non ha senso il discorso di "farlo a mano" è come voler dire "creare un applicativo con zend framework senza usare il framework stesso".

risposto 6 anni fa
Mario Santagiuliana
X 0 X

non riesco a far partire zf.bat!

risposto 6 anni fa
ziuccio
X 0 X

Lo hai aperto in un terminale? Ottieni errori?

zf.bat dovresti metterlo all'interno della cartella php.exe...dovresti così essere in grado di lanciarlo.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

se lo faccio partire dalla cartella php si anche se mi da l`avviso:

c:\xampp\php>zf show version

PHP Deprecated:  Comments starting with '#' are deprecated in C:\xampp\php\php.i

ni on line 796 in Unknown on line 0

Zend Framework Version: 1.10.5

pero`non e` cio che mi dice il tutorial, che mi indica solo che devo settare la variabile d`ambiente.

Zend_Tool for Windows

Create a new directory in Program Files called ZendFrameworkCli

Double click the downloaded archive file, ZendFramework-1.10.0-minimal.zip.

Copy the bin and library folders from within the ZendFramework-1.10.0-minimal.zip folder

window to the C:\Program Files\ZendFrameworkCli folder. This folder should now have two sub

folders: bin and library.

Add the bin directory to your path:

Go to the System section of the Control Panel.

Choose Advanced and then press the Environment Variables button.

In the System variables list, find the Path variable and double click on it.

Add ;C:\Program Files\ZendFrameworkCli\bin to the end of the input box and press okay.

risposto 6 anni fa
ziuccio
X 0 X

Inoltre:

C:\xampp\htdocs>zf create project zf_tutorial

PHP Deprecated:  Comments starting with '#' a

ni on line 796 in Unknown on line 0

 An Error Has Occurr

 Provider 'project' is not a valid provider.

risposto 6 anni fa
ziuccio
X 0 X

Per l'errore ti consiglio di rivedere il tuo php.ini.

Per l'altro o segui il tutorial o la mia indicazione. Ciò che ti ho detto è una semplice soluzione per far andare zf.bat.

Il tutorial ti spiega meglio come "installare" tutto il pacchetto, per cui segui il tutorial e non dare falsi allarmi sul fatto che non ti funziona dato che devi ancora seguire le indicazioni ok?

Ciao

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Grazie alle chiarissime indicazioni  tipo

guarda il file php.ini

oppure

segui i tutorial

sono riuscito a  utilizzare zf  per creare il progetto.

Tuttavia ora, sempre seguendo il tutorial, vado incontro ad un altro errore sulla create action

Dunque:

Ho settato in php.ini

include_path = ".;C:\xampp\php\PEAR\.;C:\ZendFrameworkCli\library"

in questo caso pero`  viene richiamata la versione di Zend inclusa in Xampp.

Il create project funziona ma il create action no...

C:\xampp\htdocs\zf\application\controllers>zf create action add IndexController

                       An Error Has Occurred

 A project profile was not found.

Zend Framework Command Line Console Tool v1.9.0

Details for action "Create" and provider "Action"

  Action

    zf create action name controller-name[=index] view-included[=1] module

La versione  1.10.5 (quella utilizzata nel tutorial) definita in  C:\ZendFrameworkCli\library non viene settata.

Secondo alcune fonti la versione 1.9.0 ha dei bug su Xampp...almeno cosi mi pare di aver capito.

Se setto il path con

include_path = "C:\ZendFrameworkCli\library"

richiama la versione 1.10.5 ma ritorno  all`errore di partenza

provider project is not a valid provider

Vorrei solo precisare il concetto che non do falsi allarmi...tendenzialmente le cose le provo prima.

Avete soluzioni?

risposto 6 anni fa
ziuccio
X 0 X

Grazie alle chiarissime indicazioni  tipo

guarda il file php.ini

oppure

segui i tutorial

sono riuscito a  utilizzare zf  per creare il progetto.

Ad indicazioni poco precise non possono che seguire risposte generali e poco precise.

Inoltre è inutile doverti spiegare passo a passo la creazione di un applicativo con zend framework qui sul forum. Le guide e i tutorial sono creati apposta e nel tuo caso. Le domande che hai posto vengono risolte da una attenta lettura del documento di introduzione a zend framework che ti avevo indicato.

Se non ho capito male tu al momento hai 2 Zend Framework sul tuo sistema giusto?

Elimina uno dei due e mantieni quello più aggiornato.

Poi vediamo di capire meglio gli errori che saltano fuori e il perchè.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Credevo di essere stato abbastanza preciso nelle mie indicazioni.

Ho descritto i percorsi, la struttura, le versioni che utilizzo ecc...

Quanto al tutorial:

O stiamo parlando di due tutorial differenti  oppure mi mancano dei pezzi perche` to seguendo passo passo, riga per riga quello che il tutorial mi dice.

Io sto seguendo questo:

http://akrabat.com/wp-content/uploads/Getting-Started-with-Zend-Framework.pdf

Evidentemente sto sbagliando qualche configurazione di cui ignoro l`esistenza in quanto poco esperto e apprendista.

Da cui  il mio topic nella speranza che qualcuno che sa mi possa spiegare alcune cose in maniera che io le capisca.

Poi:

Ho provato a ricambiare il set_path nel php.ini e a tenere solo il riferimento alla libreria della versione 1.10.5 (cosa che dovrebbe essere tradotta come: "utilizza solo le librerie della 1.10.5 e non quelle sotto PERL")

ma il "Privider project is not a valid provider".

Con la versione 1.9.0 invece il create project funziona e mi crea tutta la struttura del progetto, ma  se eseguo il create actrion ho....

A project profile was not found.
risposto 6 anni fa
ziuccio
X 0 X

Procediamo così:

- Mantieni l'utilizzo dell'ultima versione di Zend Framework.

- Copia e incolla tutto quello che fai nel prompt dei comandi, indicando all'inizio la cartella in cui tu ti trovi e facendo vedere tutti i passi, dalla versione di zend framework data da zf.bat, alla creazione del progetto al tentativo di creare una action.

P.S. Non PERL ma PEAR.

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Ho risolto.

In qualche modo il sistema andava sempre a considerare il file zf.bat sotto /php e non quello della versione aggiornata pur avendo settato le variabili d`ambiente.

Eliminando zf.bat in /php magicamente funziona ogni cosa e senza errori.

Era cosi semplice!

Comuqnue apprezzo l`aiuto!

risposto 6 anni fa
ziuccio
X 0 X
il sistema andava sempre a considerare il file zf.bat sotto /php

Per questo ti chiedevo tutti i passaggi fin dall'inizio con la visualizzazione delle versioni.

Bene così.

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda