Pour ton problème avec composer regarde ceci : https://getcomposer.org/doc/00-intro.md#globally
Pour le CSV, as-tu pensé à regarder la fonction PHP "fgetcsv" ?
Bonjour à tous,
Je soiuhaiterais revenir sur un sujet qui a été fermé, car le sujet n'a plus été traité depuis plus de 3 mois.
Je me relance sur ce projet et j'aimerais arrive à mes fins.
J'ai donc installé CakePHP avec composer, donc voici les commande:
cd /var/www/html
curl -s https://getcomposer.org/installer | php
php composer.phar create-project --prefer-dist cakephp/app sbe
Jusqu'à la, tout fonctionne.
Je dois trouver une solution pour importer des fichier CSV, dans ma base de donnée, soit dans un tableau. Ces données seront affichés par CakePHP.
Je pourrais faire une autre application, uniquement en PHP, ou je pourrais intégré ceci a CakePHP3 (ce que je préfère).
Dans tus les cas, je suis intéressé ar ceci : et ca bloque avec composer.
Simplement, je n'arrive pas à l'installer en tapant cette command
sachant que je suis au meme niveau que le fichier composer.phar, soit dans /var/www/html/
/var/www/html/composer.phar*
/var/www/html/sbe/
De la je tape cette commande:
j'ai aussi taper la meme commande, mais depuis le dossier 'sbe', car c'est là que se trouve mon fichier composer.json
Je suis un peu confu. Es-ce que je dois faire un apt-get install composer? Si oui pourquoi ceci
à fonctionné
Milles mercis pur vos lumières
Pour ton problème avec composer regarde ceci : https://getcomposer.org/doc/00-intro.md#globally
Pour le CSV, as-tu pensé à regarder la fonction PHP "fgetcsv" ?
D'accord, mais es-ce que je pourrais aussi faire?
sans faire
(je n'ai pas le dossier composer, dans /usr/local/bin/)
et je dois bien etre a la racine dans mon application ou il y a composer.json?
soit : /var/www/html/sbe/
ou je dois etre ou il y a compser.phar*
soit : /var/www/html/
le mv te permet de bouger le composer.pahr dans le dossier /usr/local/bin et de le renommer composer, ce qui te permettra d'utiliser directement la commande
Et dans le cas ou tu ne veux pas bouger le composer.phar, tu dois utiliser composer de la manière suivante :
Et oui, tu dois utiliser composer dans le dossier du composer.json
D'accord, merci pour ta réponse rapide.
Simplement, ily a encore un petit truc que je compred pas.
Si j'ai fait ceci pour installer mon application 'sbe'
cd /var/www/html
curl -s https://getcomposer.org/installer | php
php composer.phar create-project --prefer-dist cakephp/app sbe
depuis
/var/www/html/composer.phar
Il m'a ensuite créé un dossier sbe dans
/var/www/html/sbe/
Si je fait ce que tu me propose
php /path/to/composer.phar require league/csv:^8.0
sachant que
/path/to/composer.phar
c'est
/var/www/html/composer.phar
Comment il va savoir que ca concerne 'sbe'?
Ok karelo, j'avais pas encore lu ton message avant de poster mon précédent
Surtout que je l'ai modifié 5 fois :)
Merci pour ton aide, ca marche!!! Quoi, j'ai pu installer dans le dossier vendors...
Je me demande maintenant comment l'utiliser.
J'ai lu ce code, que je souhaiterais exploiter pour prendre la main.
http://csv.thephpleague.com/examples/
Importing a CSV into a database table
Ce code, il irait d'un un model ou un controller
Je pensais faire un formulaire pour télécharger le fichier, récupérer le nom du fichier, puis faire appelle a ce code avec le nom du fichier...
Merci
Ce genre de traitement se fera dans le Controller, avant toute chose, oublie pas d'annalyser les données récupérée (ne serait-ce que le temps du développement).
Mais d'après la doc, je serais plus pour utiliser le premier exemple:
Donc, dans ton controller
Bien entendu, je n'ai pas testé, je n'ai jamais utilisé cette bibliothèque.
hello, merci beaucoup! je ne suis plus devant mon pc, nais je vais etudier tout ca rapidement. merci
Hello!
Alors j'ai créé un controller ImportsController avec cake
Aussi, ma librairie League/Csv se trouve bien dans ROOT/vendor/League ..
Dans mon controller ImportsController, j'ai ajouté cette ligne, en haut (sous use App\Controller\AppController;)
Puis j'ai ajouté une action
et j'ai aussi créé une vue sous src/Template/Imports/imports.ctp
J'ai synchroniser le ImportsController juste pour voir et, évidemment ca bug ....

Il semble qu'il ne trouve pas l'image, sauf que si je tape dans mon URL www.monsite.ch/csv/test.csv, j'accède bien à mon fichier.
Je ne sais pas si vous voyez une mauvais manipulation de ma part. Pour le moment, je n'essaye pas d'avoir qulque chose dans view, j'aimerais juste ne pas avoir de message d'erreur et que mes debug affiche quelque chose.
Milles mercis
Bonjour.
Comment as-tu configuré ton virtual host, tu le fais bien pointer dans le dossier webroot de ton application ?
Tu devrais plutôt utiliser la constante WWW_ROOT pour cibler le dossier webroot.
Ton action se nomme import et tu nommes la vue correspondante imports (soit avec un s) ?
Salut Larka
Merci pour ton aide
Alors deja, il y avait une erreur. J'ai du ajouté webroor
Ceci dit, ca n'a rien changé. J'ai donc essayé ce que tu m'a proposé
ce qui me semble mieux, sauf que j'ai maintenant un access denied (le chemin est juste)
je suis un peu surpris car le fichier a la droit en lecture
-rw-rw-r-- 1 dalc dalc 35 Aug 9 16:22 test.csv
et le dossier parent a le droit en lecture pour tout le monde.
Par contre, je ne vois pas ce que tu veux dire exactement concernant la configuration de mon virtual host.
J'ai créé aussi un controller SitesController et ca fonctionne très bien comme par exemple
www.monsite.ch/sbe/Sites/index
www.monsite.ch/sbe/Sites/edit
Par contre, il y a un truc qui m'interpelle.
Mon application se trouve dans
mon fichier test.csv se trouve dans
var/www/html/sbe/webroot/csv/
Pour voir mon action index, j'entre dans mon URL
et ca fonction. Au passage, ma vue s'appelle bien import.ctp. J'ai mis un s par erreur, dans mon prédédent post.
Par contre si je veux télécharger mon fichier test.csv via mon navigateur je fais
sans le sbe
En résumé, j'ai plus au moins avancé.
ceci fonctionne
mais je dois mettre fonctuon test.csv en 777 et j'aimerais éviter ceci. J'aimerais le laisser comme il l'est pas defaut, soit droit de lecture pour tout le monde (-rw-rw-r-- )
Y-a-t-il une raison particuliere pour qu'il ne puisse pas le lire?
J'aimerais bien aussi que ceci fonctionne,
et je pense que ca se resou dans le fchier routes.php
peut etre à ce niveau
mais là, je suis un peu largué :o)