Doctrine is an object relational mapper (ORM) built for PHP. It allows developers to work with PHP objects instead of directly with SQL. Some key features include the Doctrine Query Language (DQL) for writing object-oriented queries, support for relationships and associations between objects, and behaviors that add common functionality like timestamps and slugs. Doctrine aims to make working with databases and objects easier and more productive for PHP developers.
Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...Codemotion
Salvatore Romeo ci spiega come realizzare un'app completa che funzioni offline e sincronizzi automaticamente le informazioni quando la rete è disponibile, utilizzando Phonegap, AngularJS e PouchDB.
Iscriviti qui per partecipare ad altri Tech Webinar gratuiti: http://goo.gl/iW81VD
Scrivici a: training@codemotion.it
Tw: http://twitter.com/CodemotionTR
Big data with Python on kubernetes (pyspark on k8s) - Big Data Spain 2018Holden Karau
Big Data applications are increasingly being run on Kubernetes. Data scientists commonly use python-based workflows, with tools like PySpark and Jupyter for wrangling large amounts of data. The Kubernetes community over the past year has been actively investing in tools and support for frameworks such as Apache Spark, Jupyter and Apache Airflow. Attendees will learn how these tools can be used together to build a scalable self-service platform for data science on Kubernetes as well as the benefits that Kubernetes can provide over traditional options.
Tech Webinar: Offline First: Creare un'app Phonegap che funzioni offline e si...Codemotion
Salvatore Romeo ci spiega come realizzare un'app completa che funzioni offline e sincronizzi automaticamente le informazioni quando la rete è disponibile, utilizzando Phonegap, AngularJS e PouchDB.
Iscriviti qui per partecipare ad altri Tech Webinar gratuiti: http://goo.gl/iW81VD
Scrivici a: training@codemotion.it
Tw: http://twitter.com/CodemotionTR
Big data with Python on kubernetes (pyspark on k8s) - Big Data Spain 2018Holden Karau
Big Data applications are increasingly being run on Kubernetes. Data scientists commonly use python-based workflows, with tools like PySpark and Jupyter for wrangling large amounts of data. The Kubernetes community over the past year has been actively investing in tools and support for frameworks such as Apache Spark, Jupyter and Apache Airflow. Attendees will learn how these tools can be used together to build a scalable self-service platform for data science on Kubernetes as well as the benefits that Kubernetes can provide over traditional options.
Validating Big Data Pipelines - Big Data Spain 2018Holden Karau
As big data jobs move from the proof-of-concept phase into powering real production services, we have to start considering what will happen when everything eventually goes wrong (such as recommending inappropriate products or other decisions taken on bad data). This talk will attempt to convince you that we will all eventually get aboard the failboat (especially with ~40% of respondents automatically deploying their Spark jobs results to production), and it’s important to automatically recognize when things have gone wrong so we can stop deployment before we have to update our resumes.
The way JavaScript is standardized and improved is changing this year. Learning how will help you understand why transpilers have become so popular, and why we will likely be using them for a long time.
Ember itself will need to adapt to changes in JavaScript, and we will take a look at how the existing object model might be migrated to a pure EcmaScript solution.
Refactoring legacy code guided by tests in WordPressLuca Tumedei
Slides for the talk I've presented at WC Roma 2017 (https://2017.rome.wordcamp.org/).
"Because you can’t always start from scratch.
Modern Tribe took on this impervious task head-on.
In this speech I share the knowledge the team working on “The Events Calendar” plugin suite collected along the way, the practicalities, the “gotchas””, the pitfalls in human and development terms.
I will also go into the details of down-to-earth examples, findings and tools we used to do it."
QueryPath provides a jQuery-like tool in PHP. Use it to work with local files, or with remote web services. This presentation illustrates how QueryPath can be used to build elaborate multi-source mash-ups in Drupal.
Like it or not, many open source developers are moving to the Microsoft .NET platform, and we're bringing our favorite tools with us!
In this session, we look inside ASF projects that are creating software for .NET and Mono, like Logging and Lucene.net -- to show you how to create leading-edge ASP.NET applications with ASF open source libraries, and how you can integrate with other appications using Thrift, Chemistry/DotCMIS, QPid or ActiveMQ.
We'll also look at integrating other .NET open source projects, like Spring.NET, NVelocity, and JayRock, into your C# application to create a complete open source .NET stack.
Happy Java 8 release! But for Java EE 7? Is the SE 8 works for EE 7? this slide shows the current situation of applying SE 8 to EE 7. This is the revised version of "JJUG CCC 2014 Spring" session, for the "Java 8 workshop at Fukuoka".
Introducing RaveJS: Spring Boot concepts for JavaScript applicationsJohn Hann
Modern JavaScript frameworks have become quite sophisticated. Unfortunately, they have also become quite complicated. The demos and sample projects for these frameworks look deceptively simple. However, to build and deploy real applications, developers must scaffold, configure, and maintain a tremendous amount of intricate machinery. Until recently, the Java world wasn't very different. Spring Boot finally made it easy to create stand-alone, production-grade Spring Applications that can you can "just run". Can we do the same for JavaScript? Yes, we can! Introducing RaveJS. Rave eliminates configuration, machinery, and complexity. Stop configuring and tweaking machinery such as file watchers, minifiers, and transpilers just to get to a runnable app. Instead, go from zero to "hello world" in 30 seconds. In the next 30 seconds, easily add capabilities and frameworks to your application simply by installing *Rave Extensions* and *Rave Starter* packages from npm and Bower, the leading JavaScript package managers. Finally, install additional *Rave Extension* packages to apply your favorite build, deploy, and testing patterns.
There's plenty of material (documentation, blogs, books) out there that'll help
you write a site using Django... but then what? You've still got to test,
deploy, monitor, and tune the site; failure at deployment time means all your
beautiful code is for naught.
Ao contrário do que todo mundo pensa, o Doctrine não é somente um Mapeador de objeto relacional. É um projeto focado em desenvolver soluções para persistência de dados e tecnologias relacionadas. Nessa palestra você verá o uso de várias ferramentas que fazem o uso de pacotes do projeto que serão úteis no seu ambiente desenvolvimento desde a implementação ao deploy.
Extracting Plugins And Gems From Rails AppsJosh Nichols
Rails Plugins and Ruby Gems are the basic mechanism of sharing functionality between multiple projects. This talk will go over extracting functionality into a plugin, testing it, sharing it, and converting it to a gem.
This talk is about how my company took a broken e-commerce and LMS site written in an older style MVC framework and re-wrote a significant portion of it in Symfony and related tools (Doctrine, FOS Bundles, Sonata) over 6 months and created a stable, well-tested application.
Validating Big Data Pipelines - Big Data Spain 2018Holden Karau
As big data jobs move from the proof-of-concept phase into powering real production services, we have to start considering what will happen when everything eventually goes wrong (such as recommending inappropriate products or other decisions taken on bad data). This talk will attempt to convince you that we will all eventually get aboard the failboat (especially with ~40% of respondents automatically deploying their Spark jobs results to production), and it’s important to automatically recognize when things have gone wrong so we can stop deployment before we have to update our resumes.
The way JavaScript is standardized and improved is changing this year. Learning how will help you understand why transpilers have become so popular, and why we will likely be using them for a long time.
Ember itself will need to adapt to changes in JavaScript, and we will take a look at how the existing object model might be migrated to a pure EcmaScript solution.
Refactoring legacy code guided by tests in WordPressLuca Tumedei
Slides for the talk I've presented at WC Roma 2017 (https://2017.rome.wordcamp.org/).
"Because you can’t always start from scratch.
Modern Tribe took on this impervious task head-on.
In this speech I share the knowledge the team working on “The Events Calendar” plugin suite collected along the way, the practicalities, the “gotchas””, the pitfalls in human and development terms.
I will also go into the details of down-to-earth examples, findings and tools we used to do it."
QueryPath provides a jQuery-like tool in PHP. Use it to work with local files, or with remote web services. This presentation illustrates how QueryPath can be used to build elaborate multi-source mash-ups in Drupal.
Like it or not, many open source developers are moving to the Microsoft .NET platform, and we're bringing our favorite tools with us!
In this session, we look inside ASF projects that are creating software for .NET and Mono, like Logging and Lucene.net -- to show you how to create leading-edge ASP.NET applications with ASF open source libraries, and how you can integrate with other appications using Thrift, Chemistry/DotCMIS, QPid or ActiveMQ.
We'll also look at integrating other .NET open source projects, like Spring.NET, NVelocity, and JayRock, into your C# application to create a complete open source .NET stack.
Happy Java 8 release! But for Java EE 7? Is the SE 8 works for EE 7? this slide shows the current situation of applying SE 8 to EE 7. This is the revised version of "JJUG CCC 2014 Spring" session, for the "Java 8 workshop at Fukuoka".
Introducing RaveJS: Spring Boot concepts for JavaScript applicationsJohn Hann
Modern JavaScript frameworks have become quite sophisticated. Unfortunately, they have also become quite complicated. The demos and sample projects for these frameworks look deceptively simple. However, to build and deploy real applications, developers must scaffold, configure, and maintain a tremendous amount of intricate machinery. Until recently, the Java world wasn't very different. Spring Boot finally made it easy to create stand-alone, production-grade Spring Applications that can you can "just run". Can we do the same for JavaScript? Yes, we can! Introducing RaveJS. Rave eliminates configuration, machinery, and complexity. Stop configuring and tweaking machinery such as file watchers, minifiers, and transpilers just to get to a runnable app. Instead, go from zero to "hello world" in 30 seconds. In the next 30 seconds, easily add capabilities and frameworks to your application simply by installing *Rave Extensions* and *Rave Starter* packages from npm and Bower, the leading JavaScript package managers. Finally, install additional *Rave Extension* packages to apply your favorite build, deploy, and testing patterns.
There's plenty of material (documentation, blogs, books) out there that'll help
you write a site using Django... but then what? You've still got to test,
deploy, monitor, and tune the site; failure at deployment time means all your
beautiful code is for naught.
Ao contrário do que todo mundo pensa, o Doctrine não é somente um Mapeador de objeto relacional. É um projeto focado em desenvolver soluções para persistência de dados e tecnologias relacionadas. Nessa palestra você verá o uso de várias ferramentas que fazem o uso de pacotes do projeto que serão úteis no seu ambiente desenvolvimento desde a implementação ao deploy.
Extracting Plugins And Gems From Rails AppsJosh Nichols
Rails Plugins and Ruby Gems are the basic mechanism of sharing functionality between multiple projects. This talk will go over extracting functionality into a plugin, testing it, sharing it, and converting it to a gem.
This talk is about how my company took a broken e-commerce and LMS site written in an older style MVC framework and re-wrote a significant portion of it in Symfony and related tools (Doctrine, FOS Bundles, Sonata) over 6 months and created a stable, well-tested application.
This presentation introduces the key innovations that Play 2 brings to web application development in Java and Scala. The Play framework has brought high-productivity web development to Java with three innovations that changed the rules on Java EE: Java class and template save-and-reload that just works, a simplified stateless architecture that enables cloud deployment, and superior ease-of-use. Following Play's rapidly-growing popularity, Play 2.0 was released in March 2012 with innovations that are not just new in the Java world: type-safe view templates and HTTP routing, compile-time checking for static resources, and native support for both Java and Scala. Type safety matters. After dynamically-typed programming languages such as PHP and Ruby set the standard for high-productivity web development, Play built on their advantages and has created a type-safe web development framework with extensive compile-time checking. This is essential for applications that will scale to tens of thousands of lines of code, with hundreds of view templates. Meanwhile, Play avoids the architectural-complexity that is promoted by Java EE-based approaches. The result is that Play 2 first enables rapid initial application development and then Play 2 helps you build big, serious and scalable web applications.
Angular 2 очень сильно изменился по сравнению с первой версией. В этом докладе Александр расскажет об общей архитектуре нового фреймворка, о dependency injection, о взаимодействии компонентов, маршрутизации, о компиляторе, а также о подходах к развёртыванию приложений.
Youtube Link: https://youtu.be/C1OfG7IK5jo
** Python Django Training: https://www.edureka.co/python-django **
This Edureka PPTon "Django Interview Questions and Answers" will help you understand the 50 most asked Django Interview Questions with their best answers. It will help in preparing for your upcoming Django Developer Interviews.
Follow us to never miss an update in the future.
YouTube: https://www.youtube.com/user/edurekaIN
Instagram: https://www.instagram.com/edureka_learning/
Facebook: https://www.facebook.com/edurekaIN/
Twitter: https://twitter.com/edurekain
LinkedIn: https://www.linkedin.com/company/edureka
Castbox: https://castbox.fm/networks/505?country=in
DataOps requires a cultural shift that brings the principles of lean manufacturing and DevOps to data analytics. It breaks down silos between developers, data scientists, and operators, resulting in rapid cycle times and low error rates.
At Spotify in 2013, the concept of DataOps did not exist but the Swedish company needed a way to align the people, processes, and technologies of the data organization to accelerate the development of high-quality analytics. The result was a Swedish-style DataOps, influenced by Scandinavian culture and agile principles, that enabled the company to become a true data-driven leader.
Come to this talk prepared to learn about the Doctrine PHP open source project. The Doctrine project has been around for over a decade and has evolved from database abstraction software that dates back to the PEAR days. The packages provided by the Doctrine project have been downloaded almost 500 million times from packagist. In this talk we will take you through how to get started with Doctrine and how to take advantage of some of the more advanced features.
Doctrine 2: Enterprise Persistence Layer for PHPJonathan Wage
Doctrine 2 is an object relational mapper (ORM) for PHP 5.3+ that sits on top of a powerful database abstraction layer (DBAL). One of its key features is the option to write database queries in a proprietary object oriented SQL dialect called Doctrine Query Language (DQL), inspired by Hibernates HQL. This provides developers with a powerful alternative to SQL that maintains flexibility without requiring unnecessary code duplication.
2. What is Doctrine?
‣ Doctrine is a Object Relational Mapper built
to work with PHP 5.2.3 or greater.
‣ Primarily based off of Java Hibernate
‣ Influenced by Ruby on Rails ActiveRecord
From WikiPedia: http://en.wikipedia.org/wiki/Object-
relational_mapping
Doctrine 2 http://www.doctrine-project.org
4. Why should I use it?
‣ Makes difficult problems easy
Because
jwage said
‣ Saves money so!!!
‣ I like money
Doctrine 4 http://www.doctrine-project.org
5. Will it solve world hunger?
‣ No
‣ Will not solve all your problems
‣ Helps more than it hurts
Doctrine 5 http://www.doctrine-project.org
10. The examples in the next slides use the following models
Doctrine 10 http://www.doctrine-project.org
11. Doctrine Query Language
A object-oriented SQL-dialect used for retrieving data
‣ DQL makes complex SQL simple
‣ Brings OOP to your database queries
‣ Parsed and converted to SQL for your
dbms
‣ DQL parsing is cached
Doctrine 11 http://www.doctrine-project.org
12. DQL makes complex SQL simple
The DQL: FROM BlogPost p INNER JOIN p.Author a LEFT JOIN p.Tags t
The Resulting SQL: SELECT b.id AS b__id, b.title AS b__title, b.body AS
b__body, b.author_id AS b__author_id, b.slug AS b__slug, b.created_at AS
b__created_at, b.updated_at AS b__updated_at, a.id AS a__id, a.name AS
a__name, t.id AS t__id, t.name AS t__name FROM blog_post b INNER JOIN
author a ON b.author_id = a.id LEFT JOIN blog_post_tag b2 ON b.id =
b2.blog_post_id LEFT JOIN tag t ON t.id = b2.tag_id
Special select aliases created so Doctrine can hydrate the data
Doctrine 12 http://www.doctrine-project.org
13. Let Doctrine do the work
‣ You don’t need to know how things are
related, just that they are.
‣ Uses relationship information to
automatically fill in the blanks when
building SQL.
‣ Write complex queries very fast and
efficiently
Doctrine 13 http://www.doctrine-project.org
14. Executing the DQL
Query Results
Hydrated as
Multi-Dimensional
Array or Objects
Doctrine 14 http://www.doctrine-project.org
15. DBMS Functions
‣ DBMS functions passed through parser to SQL
‣ Any DBMS function can be used
‣ Propel short coming
‣ Can be used in WHERE, HAVING, etc.
Doctrine 15 http://www.doctrine-project.org
16. Named Queries
‣ Create named queries
‣ Execute named queries
‣ Retrieve named query objects
Doctrine 16 http://www.doctrine-project.org
17. Working with
Objects
Doctrine 17 http://www.doctrine-project.org
18. Accessors/Mutators
‣ 3 Different Styles
‣ Easy to use
Doctrine 18 http://www.doctrine-project.org
19. Overriding
‣ Override accessors and mutators easily
‣ Functions recognized and invoked with normal accessors
‣ Use _get()/_set() to avoid infinite loop
Doctrine 19 http://www.doctrine-project.org
20. Hydration Modes
‣ As objects
‣ As php arrays
‣ No hydration
Doctrine 20 http://www.doctrine-project.org
21. Array Access
Recommended
‣ Works with both
record and array
hydration methods
‣ Write code to
work with objects
and switch to
array hydration
without changing
code
‣ Performance
‣ Most familiar
Doctrine 21 http://www.doctrine-project.org
22. Simple Relationships
‣ Relations work the way
you’d expect it to
‣ Several different
relationship types
supported
‣ Specify relationships
inline
Doctrine 22 http://www.doctrine-project.org
23. Working with m2m
‣ Easy to link and unlink
‣ Specify new objects
inline
‣ Attach existing objects
Doctrine 23 http://www.doctrine-project.org
24. Updating
‣ Retrieve and update
‣ Update with one DQL
query
‣ DQL updates don’t issue
events/hooks for
updating
Doctrine 24 http://www.doctrine-project.org
25. Deleting
‣ Retrieve and
delete
‣ Delete without
retrieving
‣ DQL deletes
issue individual
queries
Doctrine 25 http://www.doctrine-project.org
26. Many2Many
‣ Reference table is used transparently
‣ No need to manually join reference table
‣ Easy to store extra data with reference
tables
Doctrine 26 http://www.doctrine-project.org
28. Many2Many Example 2
Simplified even more
Doctrine 28 http://www.doctrine-project.org
29. Friends List with Equal m2m
Doctrine 29 http://www.doctrine-project.org
30. Inspecting SQL of Equal M2M
SQL is generated with OR condition
so that relationship data is returned
on both sides
Doctrine 30 http://www.doctrine-project.org
31. Friends/Buddy List
Different SQL used so objects
which exist on one side, exist
automatically on the other
Now Fabien and I are friends!! Too easy!
Doctrine 31 http://www.doctrine-project.org
32. Plug n’ Play Behaviors
‣ Extract functionality
‣ Code re-usability
‣ Maintenance
‣ Time and money saver
‣ Write your own
‣ Offloads functionality to community
Doctrine 32 http://www.doctrine-project.org
37. The Results
Set automatically!
Updated!
Doctrine 37 http://www.doctrine-project.org
38. What Happened?
‣ Columns automatically added
‣ Automatically sets created_at and
update_at timestamps on save
‣ Automatic creation of unique, human
readable record identifier(slug)
FREE SOFTWARE! FREE FUNCTIONALITY!
ARE YOU SERIOUS?
Doctrine 38 http://www.doctrine-project.org
39. Data Fixtures
‣ Easy to specify
m2m data
‣ We did it first,
not rails ;)
Doctrine 39 http://www.doctrine-project.org
40. Data Fixtures Inline
‣ Specify data
fixtures inline
‣ More readable
‣ If a relationship
exists, you can
populate it inline
Doctrine 40 http://www.doctrine-project.org
41. Future
‣ Doctrine 1.1, 1.2.....2.0
‣ Separate packages for DBAL and ORM
‣ PEAR2: Replace MDB2? Defacto standard for
DBAL and ORM in PHP?
‣ Integration with many other libraries: symfony,
Zend Framework, Code Igniter, Typo3, etc.
Doctrine 41 http://www.doctrine-project.org
42. Doctrine 2.0
‣ Almost entirely rewritten code base
‣ Decoupling of components
‣ Off-loading of features to community: behaviors,
validation, yaml schema files, data fixtures, etc.
‣ Concentrate more on ORM specific functionality
Doctrine 42 http://www.doctrine-project.org
43. Want more?
‣ Read More
‣ http://www.doctrine-project.org/documentation/manual/1_0/?one-page#dql-
doctrine-query-language
‣ http://www.doctrine-project.org/documentation/manual/1_0/?one-page#migration
‣ http://www.doctrine-project.org/documentation/manual/1_0/?one-page#behaviors
‣ Community - http://www.doctrine-project.org/community
‣ Frequently Asked Questions - http://www.doctrine-project.org/faq
‣ About Doctrine - http://www.doctrine-project.org/about
‣ The Doctrine Blog - http://www.doctrine-project.org/blog
‣ Documentation - http://www.doctrine-project.org/documentation
Doctrine 43 http://www.doctrine-project.org
44. THE END!
I hope this presentation was helpful and sparked some
interest to play with Doctrine!
Follow the Doctrine...
Doctrine 44 http://www.doctrine-project.org