Pro Yearly is on sale from $80 to $50! »

PHP i MongoDB iz prve ruke

C1d9295b73069d0182d61895048713d8?s=47 DaFED
August 08, 2016

PHP i MongoDB iz prve ruke

DaFED#46
Speaker: Nebojša Kamber
Iskustva iz trogodišnjeg rada sa MongoDB bazom na sajtovima Infostud grupe. Akcenat na PHP drajveru. Prednosti, mane i razlike u novim verzijama.

C1d9295b73069d0182d61895048713d8?s=128

DaFED

August 08, 2016
Tweet

Transcript

  1. PHP & MongoDB Iz prve ruke

  2. O predavaču Nebojša Kamber @nebkam

  3. ✘ Senior PHP programer, u Infostudu 5 godina ✘ Sertifikovan

    za rad sa MongoDB od 2013. ✘ Radio sa PHP i NodeJS drajverima prve i druge generacije
  4. Nastanak MongoDB ✘ Proizvod kompanije 10gen Inc, rezultat iskustva iz

    DoubleClick ✘ Nastao nakon 12 custom DB rešenja
  5. MongoDB verzije ✘ Open source od 2007. ✘ Komercijalna verzija

    od 2010. ✘ MongoDB Atlas od ove godine
  6. Poznato okruženje JSON Dokumenti i upiti CLI Primarni za administraciju

    baze Javascript SpiderMonkey engine
  7. Name Version Created MySQL 5.7 1995-05-23 SQLite 3.13 2000-08-01 Dokumentno-orijentisan

    data model { name: "MongoDB", author: { name: "10gen Inc" }, version: [3, 2, 0] }
  8. Hosting baze Self-hosted Više kontrole Komplikovano Cloud Skalabilno Potrebno konfigurisati

    DBaaS Konfigurisano Monitoring
  9. PHP Drajver (2015) C ekstenzija Composer biblioteka

  10. Povezivanje $client = new MongoDB\Client("mongodb://localhost:27017") $collection = $client->selectCollection($dbName, "events"); Kolekcija

    ≈ Tabela
  11. Dodavanje dokumenata $event = new Event(...); try { $collection->insertOne($event); }

    catch (Exception $exc) {} Dokument ≈ Red
  12. Pretraga dokumenata $event = $collection->findOne(["title" => "DaFED"]); $events = $collection

    ->find(["city" => "Novi Sad"]) ->toArray();
  13. Automatska serijalizacija PHP class Event { public $title = "DaFED";

    public $when = new \DateTime(); public $city = "Novi Sad"; } MongoDB { __pclass: BinData(...) title: "DaFED", when: UTCDateTime("2016-08-03"), city: "Novi Sad" }
  14. Tips & Tricks ✘ Za razliku od PHP i MySQL,

    koristi striktne tipove (2 != "2") ✘ UTF-8 je jedini encoding
  15. Kada koristiti MongoDB? ✘ Raznorodni podaci ✘ Prototyping ✘ Obrada

    eksternih podataka ✘ Logovanje
  16. Kada ne koristiti? ✘ Podaci sa striktnom šemom ✘ Kada

    je akcenat na relacijama između podataka ✘ Puno agregiranja
  17. Hvala na pažnji Pitanja? @nebkam