Hejsan.
Jag har gjort en simpel image browser med hjälp av Zend Framework, MongoDB och Doctrine.
Applikationen klarar av att lagra bilder som användaren laddar upp, samt en kort förklaring samt taggar. Sedan kan man söka efter bilderna med taggarna som sökord.
Inte mycket mer.
Följande addresser kan användas:
zfgallery.local/image/image/addimage
zfgallery.local/image/image/search
Ett rätt så snabbt hack med andra ord. Här vill jag främst test hur lätt det är att använda MongoDB tillsammans med Doctrine.
Vissa saker görs på (tok)fel sätt. T ex så hämtas bilderna (datan) från MongoDB-databasen varje gång bilden skall visas och därför anropas Zend Frameworks MVC stack vid varje anrop. Bättre vore, om man istället hämtade bilderna som statiska.
Sedan så används ett fulhack (width="", height="") för att skala bilderna (ett stort no-no med riktiga projekt). Här borde man istället skala bilderna (t ex med GD eller Imagemagick) en gång och sedan visa de skalade versionerna vid följande anrop.
Sedan skall man ju följa "filter input, escape output" -mantran, som inte följs i denna exempel. Dvs att all innehåll som kommer från en användare / extern källa, skall ses som opålitlig data och måste behandlas därefter.
Applikationen borde fungera as is, såvida ni:
För att inte göra den packade filen allt för stor så måste ni ladda ned:
Den korrekta (väsentliga) hierakin ser ut så här:
library:
(viktigt, annars får ni Class xxx not found -fel).
Jag körde med denna vhost-konfiguration:
Sedan la jag till följande rad i /etc/hosts
127.0.0.1 zfgallery.local
Hur ni sedan installerar och kör MongoDb är upp till var och en.
Denna exempel kräver också att ni har viss kännedom om Zend Framework och Doctrine, även om applikationen borde kunna köras med noll koll!
Men får ni tokfel så fråga gärna. Jag försöker svara om jag kan.
Ge gärna kommentarer.
Jag har gjort en simpel image browser med hjälp av Zend Framework, MongoDB och Doctrine.
Applikationen klarar av att lagra bilder som användaren laddar upp, samt en kort förklaring samt taggar. Sedan kan man söka efter bilderna med taggarna som sökord.
Inte mycket mer.
Följande addresser kan användas:
zfgallery.local/image/image/addimage
zfgallery.local/image/image/search
Ett rätt så snabbt hack med andra ord. Här vill jag främst test hur lätt det är att använda MongoDB tillsammans med Doctrine.
Vissa saker görs på (tok)fel sätt. T ex så hämtas bilderna (datan) från MongoDB-databasen varje gång bilden skall visas och därför anropas Zend Frameworks MVC stack vid varje anrop. Bättre vore, om man istället hämtade bilderna som statiska.
Sedan så används ett fulhack (width="", height="") för att skala bilderna (ett stort no-no med riktiga projekt). Här borde man istället skala bilderna (t ex med GD eller Imagemagick) en gång och sedan visa de skalade versionerna vid följande anrop.
Sedan skall man ju följa "filter input, escape output" -mantran, som inte följs i denna exempel. Dvs att all innehåll som kommer från en användare / extern källa, skall ses som opålitlig data och måste behandlas därefter.
Applikationen borde fungera as is, såvida ni:
- kör med PHP 5.3
- har MongoDB installerat och i drift
- har en passande vhost-konfiguration eller liknande (läs docs/README.txt för mer information + exempel)
- har nedanstående bibliotek installerade i library-katalogen
- har skapat katalogen public/images/mongodb och gett webb-servern läs- och skriv-access
För att inte göra den packade filen allt för stor så måste ni ladda ned:
- Zend Framework (jag körde med 1.10.8) - http://framework.zend.com/download/latest
- doctrine2-common - http://www.doctrine-project.org/projects/common
- doctrine2-orm - http://www.doctrine-project.org/projects/orm
- mongodb_odm - http://www.doctrine-project.org/projects/mongodb_odm
Den korrekta (väsentliga) hierakin ser ut så här:
library:
- Jme
- Zend
- doctrine2-common/lib
- doctrine2-orm/lib
- mongodb_odm/lib
(viktigt, annars får ni Class xxx not found -fel).
Jag körde med denna vhost-konfiguration:
PHP-kod:
<VirtualHost *>
ServerName zfgallery.local
DocumentRoot /opt/local/apache2/htdocs/zfGallery/public
AddDefaultCharset utf-8
SetEnv APPLICATION_ENV development
</VirtualHost>
127.0.0.1 zfgallery.local
Hur ni sedan installerar och kör MongoDb är upp till var och en.
Denna exempel kräver också att ni har viss kännedom om Zend Framework och Doctrine, även om applikationen borde kunna köras med noll koll!
Men får ni tokfel så fråga gärna. Jag försöker svara om jag kan.
Ge gärna kommentarer.
Kommentera