Meddelande

Minska
No announcement yet.

En simpel image browser med hjälp ab Zend Framework, Doctrine och MongoDB

Minska
X
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • En simpel image browser med hjälp ab Zend Framework, Doctrine och MongoDB

    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:
    • 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:
    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
    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.
    Bifogade filer
    Min blogg | Mina böcker

  • #2
    Intressant... Detta ska testas! Återkommer.

    Kommentera


    • #3
      Det kommer troligtvis att uppstå mindre fel med entity-klasserna då Doctrine har uppdaterats sedan denna guide gjordes och användandet av sk annatations har ändrats lite.

      Det du troligtvis kommer att få ändra på är hur du sätter längden på nummer-baserade datatyper i docblock.

      Tidigare:

      @column(name="foo", type="integer", length="40")

      NU:

      @column(name="foo", type="integer", length=40) <-- observera, length-attributen skall nu skrivas utan ""
      Min blogg | Mina böcker

      Kommentera

      Working...
      X