Slide del mio intervento al SymfonyDay 2017 di Milano
----
Ti è mai capitato di ritrovarti a scrivere controller enormi pieni di funzionalità? O che un cliente ti chiedesse di aggiungere un nuova funzionalità all’interno di un flusso già esistente? Hai mai sognato che esistesse un modo per scrivere codice realmente manutenibile, disaccopiato e semplice da far evolvere? Ti presento il Command Bus, un pattern che ti permette di scrivere codice altamente espressivo e manutenibile. In questo talk ti mostrerò i vantaggi dell’utilizzare il Command Bus (e anche l’Event Bus) con un esempio pratico in Symfony, usando la libreria SimpleBus.
The document discusses JavaScript templating libraries and jQuery's $.template plugin. It explains that templates allow separation of display logic from business logic and reusable markup. $.template converts a string into a function that renders data as HTML/DOM. Tags like {%= %} output values and {% %} execute JavaScript without output. Templates can take string, DOM, or Ajax input and output as a function, DOM fragment, or HTML string.
WordCamp Denver 2012 - Custom Meta BoxesJeremy Green
Jeremy Green gave a presentation on developing with custom meta boxes in WordPress. He explained that custom meta boxes allow adding custom data to posts and pages in the administrative interface. He demonstrated how to add a custom meta box to a plugin or theme using add_meta_box(), and how to create input fields, save the data, and retrieve the custom field values. The presentation included tips for using custom meta boxes such as prefixing field names with underscores and using delete_post_meta() to remove fields.
You must’ve heard of Unit testing… If not, then this talk is definitely for you! If you do know Unit testing, you probably ran at some point into a hurdle: “Where do I start?” And despite your best efforts, you end up not having enough tests for your application – Then that change request comes in, requiring you to change that very same complex piece of code for which you are lacking tests! How do you going refactor while maintaining all those ‘undocumented’ business rules? This talk will show how Codeception can be leveraged to refactor the visuals aspects of an application, maintaining backwards compatibility on API changes and even assist in moving to a whole different server infrastructure.
The document discusses web testing of the Net-A-Porter website using WWW::Mechanize. It includes code snippets for retrieving page data, parsing tables and lists, submitting forms, and checking for errors. Methods are created for navigating between fulfilment pages and adding comments. The document also mentions searching for purchase orders and checking packing slips.
The document provides an overview of using Drupal APIs and PHP/SQL to work with MySQL tables in a custom Drupal module. It includes examples of creating tables during module installation and later, inserting and querying data, creating blocks and forms, and more. Code snippets show how to create tables, insert/update data, query tables, build admin forms, and display content using blocks.
This document provides documentation on how to use je5, a JavaScript library for simplifying HTML5 interactions. It describes how to include the je5 script in an HTML page and then calls various je5 functions like je5_rectangle, je5_circle, je5_line, etc. to draw basic shapes on a canvas. These functions take parameters like colors, positions, sizes to customize the drawings. The document also shows how to combine multiple je5 functions to create more complex drawings.
Slides from my talk at the GTA-PHP Meetup Group about getting mixed HTML / PHP code into objects using SOLID principles.
Meetup page: http://www.meetup.com/GTA-PHP-User-Group-Toronto/events/230656470/
Code is on github: https://github.com/zymsys/solid
The document discusses JavaScript templating libraries and jQuery's $.template plugin. It explains that templates allow separation of display logic from business logic and reusable markup. $.template converts a string into a function that renders data as HTML/DOM. Tags like {%= %} output values and {% %} execute JavaScript without output. Templates can take string, DOM, or Ajax input and output as a function, DOM fragment, or HTML string.
WordCamp Denver 2012 - Custom Meta BoxesJeremy Green
Jeremy Green gave a presentation on developing with custom meta boxes in WordPress. He explained that custom meta boxes allow adding custom data to posts and pages in the administrative interface. He demonstrated how to add a custom meta box to a plugin or theme using add_meta_box(), and how to create input fields, save the data, and retrieve the custom field values. The presentation included tips for using custom meta boxes such as prefixing field names with underscores and using delete_post_meta() to remove fields.
You must’ve heard of Unit testing… If not, then this talk is definitely for you! If you do know Unit testing, you probably ran at some point into a hurdle: “Where do I start?” And despite your best efforts, you end up not having enough tests for your application – Then that change request comes in, requiring you to change that very same complex piece of code for which you are lacking tests! How do you going refactor while maintaining all those ‘undocumented’ business rules? This talk will show how Codeception can be leveraged to refactor the visuals aspects of an application, maintaining backwards compatibility on API changes and even assist in moving to a whole different server infrastructure.
The document discusses web testing of the Net-A-Porter website using WWW::Mechanize. It includes code snippets for retrieving page data, parsing tables and lists, submitting forms, and checking for errors. Methods are created for navigating between fulfilment pages and adding comments. The document also mentions searching for purchase orders and checking packing slips.
The document provides an overview of using Drupal APIs and PHP/SQL to work with MySQL tables in a custom Drupal module. It includes examples of creating tables during module installation and later, inserting and querying data, creating blocks and forms, and more. Code snippets show how to create tables, insert/update data, query tables, build admin forms, and display content using blocks.
This document provides documentation on how to use je5, a JavaScript library for simplifying HTML5 interactions. It describes how to include the je5 script in an HTML page and then calls various je5 functions like je5_rectangle, je5_circle, je5_line, etc. to draw basic shapes on a canvas. These functions take parameters like colors, positions, sizes to customize the drawings. The document also shows how to combine multiple je5 functions to create more complex drawings.
Slides from my talk at the GTA-PHP Meetup Group about getting mixed HTML / PHP code into objects using SOLID principles.
Meetup page: http://www.meetup.com/GTA-PHP-User-Group-Toronto/events/230656470/
Code is on github: https://github.com/zymsys/solid
This document provides suggestions for simplifying the WordPress dashboard and administration interface. It recommends removing unnecessary widgets from the dashboard, using code to minimize dashboard menus and boxes, and adding shortcodes or functions to more easily display child pages and handle 404 errors. The document also gives examples of removing meta boxes, including notifications for visitors, and linking to a "report a problem" form to make the site easier to use.
Here are some initial ideas I generated for your story based on the prompts:
- Protagonist leaves home village to attend a school for magic in a big city
- They struggle to fit in at first but make friends with another student
- The students are given a test involving solving a mystery in the city
- The protagonist and friend discover an evil plot by one of the teachers
- They must work together to stop the teacher's plan and save the school
- In the process, the protagonist learns an important lesson about friendship
Let me know if any of these spark additional ideas for you or if you'd like me to explore different directions. I'm happy to keep brainstorming to help develop the plot.
Everything you always wanted to know about forms* *but were afraid to askAndrea Giuliano
La componente dei Form di Symfony2 rende possibile la costruzione di diverse tipologie di form in modo del tutto semplice. La sua architettura flessibile e altamente scalabile permette di poter gestire strutture adatte ad ogni tipo di esigenza. Tuttavia, conoscere come utilizzare appieno tutta la sua potenza non è banale. In questo talk verrà trattato in profondità la componente Form di Symfony2, mostrando i suoi meccanismi di base e come utilizzarli per estenderli ed introdurre la propria logica di business, così da costruire form cuciti a misura delle tue necessità.
The document discusses Symfony's form component. It covers EntityType and how it can be used to associate entities through many-to-many relationships. It also discusses CollectionType for embedding collections of forms and allowing addition/removal of elements. It provides solutions for ensuring data consistency when handling associations and collections in forms. It also covers form events, data filtering, and common data types available in Symfony forms.
Devs for Leokz e 7Masters - WTF Oriented ProgrammingFabio Akita
The document discusses WTF oriented programming techniques including:
- Using try/catch blocks to safely access nested object attributes
- Applying the Law of Demeter to avoid violating encapsulation
- Mapping and selecting arrays instead of iterating with each
- Storing translations in locale files instead of hardcoding strings
- Conditional logic to dynamically set form field values
The examples provide concise code snippets that implement various WTF patterns for handling errors, following principles of object-oriented design, and internationalization.
Bernhard Schussek gave a presentation on leveraging Symfony2 forms at the Symfony Live conference in March 2011. He discussed the evolution of the Symfony form component, its service-oriented architecture, and how forms are decoupled from business logic. He provided an example of an online sausage shop order form to demonstrate how form data is bound to objects and submitted. The presentation covered the form configuration class, form processing, field types, validation, embedding forms, and form themes.
This PHP document defines functions for a WordCamp Spain plugin. It includes functions to add an image to post content, create an options page for configuring the image settings, and register a widget to display the image. The options page and widget allow configuring the image path, width, and height. The plugin filters post content and registers a widget to display the configured image.
As WordPress and Genesis Developers, the code is our craft, our art. Adopting proven software development principles and keys to quality code into our workflow elevates our art form. In this session, we explore the why, when, and how of writing quality code by design.
This document discusses SQL injection vulnerabilities and techniques for exploiting them. It provides examples of SQL queries that can be used to enumerate data from a vulnerable database, including finding the number of columns, database version, system user, table names, and database names. It also demonstrates how to use SQL injection to create a backdoor PHP file ("c.php") that allows executing system commands via the cmd parameter, and provides an example of using this backdoor to run the shutdown command.
This document discusses migrating from Symfony 1 to Symfony 2. It covers key differences like Symfony 2's use of the Dependency Injection Container and lack of sfContext. It provides examples of implementing models, controllers and views in Symfony 2. Recommended bundles for common Symfony 1 features are also mentioned, along with caching and the HTTP layer.
Pervasive 2011 Talk on Situated GlyphsFahim Kawsar
This document describes the development of a visual language system (VLsys) for representing medical concepts. The VLsys uses iconic representations combined in a modular way to depict complex concepts. It was evaluated against a word-based display and found to support faster understanding and identification of related concepts. The VLsys focuses on coordination and supporting collaborative discussion across medical experts through its use in desktop environments. Key elements of the VLsys include:
- Representing medical concepts like diseases, drugs, and tests through iconic symbols that are combined modularly
- Organizing icons in a hierarchical structure with contextual relationships
- Providing text explanations on rollover of icons
- Enabling identification and exploration of related concepts
The VLsys
The document provides information about building forms in Drupal using the Form API, including:
- Creating a basic subscription form with email and radio button fields
- Adding validation and submission handlers
- Passing data between the form, validation, and submission handlers
- Using fieldsets, trees and access control for form elements
- Creating tabular forms and theming forms into tables
- Defining custom form elements
- Invoking forms with drupal_get_form and providing default values
- Modifying existing forms like node forms using hooks
- Altering forms using hook_form_alter to customize behavior
The document appears to be a presentation about the CodeIgniter PHP framework. It discusses concepts like MVC, fat models/skinny controllers, validation, auto-loading views, and using presenters. It advocates for convention over configuration and processing data in the model. The presentation promotes CodeIgniter's flexibility and adaptability compared to other frameworks.
Social media facilitates human conversation, trust and influence among online consumers but brands are deeply working to regain control through social commerce.
This document provides an overview of how to use the Smarty template engine. It discusses installing Smarty, using templates and template directories, common syntax like variables and modifiers, control structures like if/else and foreach loops, sections, includes, inserts, and caching.
This document provides an overview of how to use the Smarty template engine. It discusses installing Smarty, using templates and template directories, common syntax like variables and modifiers, control structures like if/else and foreach loops, sections, includes, inserts, and caching.
Smart efficient design using REST and MVC.
Web applications are everywhere now, but many of them misuse the basic concepts laid down by the HTTP protocol, miss the benefits of making the application and the API the same thing, and don't set themselves up to grow if things take off.
This talk will look at the design decisions you need to make to ensure that your application really is ReST-ful, how we fit that cleanly into MVC, and how state machines can help us manage clean state changes in a stateless protocol. The talk will go into some of the available design patterns with class diagrams and code snippets showing how and where to implement them.
Originally presented at PHP UK 2009.
The document is code for an R57 shell remote administration tool. It includes options to set the language, authentication, and login/password. Functions are defined for compressing files, sending email attachments, and connecting to databases like MySQL, MSSQL, PostgreSQL and Oracle.
Crafting Quality PHP Applications: an overview (PHPSW March 2018)James Titcumb
This document summarizes a presentation about crafting quality PHP applications. It discusses that quality involves planning, development practices like testing and code reviews, and continuous integration/deployment. Testing should not be separate, but assumed throughout development. Behavior tests should test at the domain layer rather than UI directly. The goal is to automate tests and deployments to improve quality and confidence.
This document provides suggestions for simplifying the WordPress dashboard and administration interface. It recommends removing unnecessary widgets from the dashboard, using code to minimize dashboard menus and boxes, and adding shortcodes or functions to more easily display child pages and handle 404 errors. The document also gives examples of removing meta boxes, including notifications for visitors, and linking to a "report a problem" form to make the site easier to use.
Here are some initial ideas I generated for your story based on the prompts:
- Protagonist leaves home village to attend a school for magic in a big city
- They struggle to fit in at first but make friends with another student
- The students are given a test involving solving a mystery in the city
- The protagonist and friend discover an evil plot by one of the teachers
- They must work together to stop the teacher's plan and save the school
- In the process, the protagonist learns an important lesson about friendship
Let me know if any of these spark additional ideas for you or if you'd like me to explore different directions. I'm happy to keep brainstorming to help develop the plot.
Everything you always wanted to know about forms* *but were afraid to askAndrea Giuliano
La componente dei Form di Symfony2 rende possibile la costruzione di diverse tipologie di form in modo del tutto semplice. La sua architettura flessibile e altamente scalabile permette di poter gestire strutture adatte ad ogni tipo di esigenza. Tuttavia, conoscere come utilizzare appieno tutta la sua potenza non è banale. In questo talk verrà trattato in profondità la componente Form di Symfony2, mostrando i suoi meccanismi di base e come utilizzarli per estenderli ed introdurre la propria logica di business, così da costruire form cuciti a misura delle tue necessità.
The document discusses Symfony's form component. It covers EntityType and how it can be used to associate entities through many-to-many relationships. It also discusses CollectionType for embedding collections of forms and allowing addition/removal of elements. It provides solutions for ensuring data consistency when handling associations and collections in forms. It also covers form events, data filtering, and common data types available in Symfony forms.
Devs for Leokz e 7Masters - WTF Oriented ProgrammingFabio Akita
The document discusses WTF oriented programming techniques including:
- Using try/catch blocks to safely access nested object attributes
- Applying the Law of Demeter to avoid violating encapsulation
- Mapping and selecting arrays instead of iterating with each
- Storing translations in locale files instead of hardcoding strings
- Conditional logic to dynamically set form field values
The examples provide concise code snippets that implement various WTF patterns for handling errors, following principles of object-oriented design, and internationalization.
Bernhard Schussek gave a presentation on leveraging Symfony2 forms at the Symfony Live conference in March 2011. He discussed the evolution of the Symfony form component, its service-oriented architecture, and how forms are decoupled from business logic. He provided an example of an online sausage shop order form to demonstrate how form data is bound to objects and submitted. The presentation covered the form configuration class, form processing, field types, validation, embedding forms, and form themes.
This PHP document defines functions for a WordCamp Spain plugin. It includes functions to add an image to post content, create an options page for configuring the image settings, and register a widget to display the image. The options page and widget allow configuring the image path, width, and height. The plugin filters post content and registers a widget to display the configured image.
As WordPress and Genesis Developers, the code is our craft, our art. Adopting proven software development principles and keys to quality code into our workflow elevates our art form. In this session, we explore the why, when, and how of writing quality code by design.
This document discusses SQL injection vulnerabilities and techniques for exploiting them. It provides examples of SQL queries that can be used to enumerate data from a vulnerable database, including finding the number of columns, database version, system user, table names, and database names. It also demonstrates how to use SQL injection to create a backdoor PHP file ("c.php") that allows executing system commands via the cmd parameter, and provides an example of using this backdoor to run the shutdown command.
This document discusses migrating from Symfony 1 to Symfony 2. It covers key differences like Symfony 2's use of the Dependency Injection Container and lack of sfContext. It provides examples of implementing models, controllers and views in Symfony 2. Recommended bundles for common Symfony 1 features are also mentioned, along with caching and the HTTP layer.
Pervasive 2011 Talk on Situated GlyphsFahim Kawsar
This document describes the development of a visual language system (VLsys) for representing medical concepts. The VLsys uses iconic representations combined in a modular way to depict complex concepts. It was evaluated against a word-based display and found to support faster understanding and identification of related concepts. The VLsys focuses on coordination and supporting collaborative discussion across medical experts through its use in desktop environments. Key elements of the VLsys include:
- Representing medical concepts like diseases, drugs, and tests through iconic symbols that are combined modularly
- Organizing icons in a hierarchical structure with contextual relationships
- Providing text explanations on rollover of icons
- Enabling identification and exploration of related concepts
The VLsys
The document provides information about building forms in Drupal using the Form API, including:
- Creating a basic subscription form with email and radio button fields
- Adding validation and submission handlers
- Passing data between the form, validation, and submission handlers
- Using fieldsets, trees and access control for form elements
- Creating tabular forms and theming forms into tables
- Defining custom form elements
- Invoking forms with drupal_get_form and providing default values
- Modifying existing forms like node forms using hooks
- Altering forms using hook_form_alter to customize behavior
The document appears to be a presentation about the CodeIgniter PHP framework. It discusses concepts like MVC, fat models/skinny controllers, validation, auto-loading views, and using presenters. It advocates for convention over configuration and processing data in the model. The presentation promotes CodeIgniter's flexibility and adaptability compared to other frameworks.
Social media facilitates human conversation, trust and influence among online consumers but brands are deeply working to regain control through social commerce.
This document provides an overview of how to use the Smarty template engine. It discusses installing Smarty, using templates and template directories, common syntax like variables and modifiers, control structures like if/else and foreach loops, sections, includes, inserts, and caching.
This document provides an overview of how to use the Smarty template engine. It discusses installing Smarty, using templates and template directories, common syntax like variables and modifiers, control structures like if/else and foreach loops, sections, includes, inserts, and caching.
Smart efficient design using REST and MVC.
Web applications are everywhere now, but many of them misuse the basic concepts laid down by the HTTP protocol, miss the benefits of making the application and the API the same thing, and don't set themselves up to grow if things take off.
This talk will look at the design decisions you need to make to ensure that your application really is ReST-ful, how we fit that cleanly into MVC, and how state machines can help us manage clean state changes in a stateless protocol. The talk will go into some of the available design patterns with class diagrams and code snippets showing how and where to implement them.
Originally presented at PHP UK 2009.
The document is code for an R57 shell remote administration tool. It includes options to set the language, authentication, and login/password. Functions are defined for compressing files, sending email attachments, and connecting to databases like MySQL, MSSQL, PostgreSQL and Oracle.
Crafting Quality PHP Applications: an overview (PHPSW March 2018)James Titcumb
This document summarizes a presentation about crafting quality PHP applications. It discusses that quality involves planning, development practices like testing and code reviews, and continuous integration/deployment. Testing should not be separate, but assumed throughout development. Behavior tests should test at the domain layer rather than UI directly. The goal is to automate tests and deployments to improve quality and confidence.
This prototype works, but it's not pretty, and now it's in production. That legacy application really needs some TLC. Where do we start? When creating long lived applications, it's imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this talk, we'll take a quick look into each of these areas, looking at how we can make positive, actionable change in our workflow.
The document summarizes tips and tricks discussed at a meetup for PHP developers in Poznan, Poland. It covers accessing request parameters in Symfony controllers, naming strategies in Doctrine, using the app.user variable and Twig, configuring Swiftmailer for email delivery, automatically testing services, ParamConverters, DI/IoC bundles like JMSDiExtraBundle, JavaScript translation bundles, and AngularJS integration.
Versão com GIFs:
https://docs.google.com/presentation/d/17M-jHlkAP5KPfQ4_Alck_wIsN2gK3dZNGfJR9Bi1L50/present
Códigos para instalação das dependências:
https://github.com/fdaciuk/talks/tree/master/2015/wordcamp-sao-paulo
The document discusses Symfony2 and the MVC pattern. It provides an example of a model with Shopper, Order, and Item entities. It then shows how to fetch these entities from the database using Doctrine repositories. The document also briefly covers Twig templating, routing, generating links, and controllers in Symfony.
A key feature of TYPO3 today is its extendability and flexibility. Writing extensions was never easier since the Kickstarter, and tslib_piBase. But, time doesn't stand still: new programming paradigms other innovative frameworks came up. It's time to take a next step to faster, cleaner extension coding. With the new Version 5 of TYPO3 and its basis FLOW3 the way to develop extensions will change fundamentally. With Extbase - the new framework for extension development introduced in TYPO3 4.3 - you are able to develop with the paradigms of FLOW3 today. During this talk, you get in touch with the features of the framework to understand how it supports your development process. We also address the users perspective by discussing best practices how to migrate to TYPO3 v5.
This document summarizes a presentation about writing secure Drupal code. It discusses common vulnerabilities like cross-site scripting, access bypass, and SQL injection. It provides examples of secure and vulnerable code and recommends best practices to prevent vulnerabilities, including input filtering, access control, and automated testing. It also discusses security improvements in Drupal 8 and learning from security advisories.
This document describes an online movie ticket booking system. It defines key terms like hierarchy chart, flow chart, and pseudocode. It outlines the advantages of reducing workloads and allowing customers to book tickets anywhere, and disadvantages like needing internet access. The document includes a hierarchy chart, flow charts, and pseudocode describing the process of a customer booking tickets, including selecting a movie, number of seats, payment method, and receiving a confirmation.
This document discusses using PHP to build rich internet applications (RIAs). It provides examples of using PHP to return XML or JSON data to an RIA client, and using AMFPHP to transfer PHP objects directly to ActionScript clients. It recommends building PHP apps as services that can be consumed by any front-end technology, including Ajax, XAML and Flex, in order to simplify the PHP code.
This document provides an overview of how to integrate PayPal payments into a Symfony application using the sfPaymentPlugin and sfPaymentPayPalPlugin. It discusses configuring the plugins, creating a transaction model, executing purchases in the controller, displaying the PayPal form in views, and validating incoming IPN requests. The summary focuses on the key steps and components involved in setting up PayPal payments with Symfony.
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)James Titcumb
This prototype works, but it’s not pretty, and now it’s in production. That legacy application really needs some TLC. Where do we start? When creating long lived applications, it’s imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this tutorial, we’ll take a deep dive into each of these areas, looking at how we can make positive, actionable change in our workflow.
This document summarizes a presentation on writing secure Drupal code. It discusses common vulnerabilities like cross-site scripting, access bypass, and SQL injection. It demonstrates how to securely code against these vulnerabilities and recommends using tools like Behat tests, security advisories, and contributing to Drupal to improve security. The presentation encourages writing secure code through sanitizing user input, using database placeholders, and following best practices.
This document provides code for building a boilerplate widget in WordPress. It includes a class called boilerplate_widget that extends the WP_Widget class. The class contains functions for constructing the widget, generating the form, updating settings, and displaying the widget. The code also includes an action to register the widget so that it can be added to site sidebars.
The document summarizes the OWASP Top 10 security risks and provides prevention techniques. It discusses injection, cross-site scripting (XSS), insecure deserialization, XML external entities (XXE), and other risks. For each risk, it recommends validating, sanitizing, and escaping user input, using prepared statements, and other best practices to prevent security vulnerabilities.
This document contains PHP code for a web shell that provides various functions like file management, command execution, database operations etc. It starts a session, sets time limit and error reporting to 0. It then strips slashes from GET/POST/COOKIE variables. The rest of the code handles different requests like file upload, download, rename, delete etc and displays menus to call these functions. It also shows server information and has about page.
This prototype works, but it’s not pretty, and now it’s in production. That legacy application really needs some TLC. Where do we start? When creating long lived applications, it’s imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this talk, we’ll take a quick look into each of these areas, looking at how we can make positive, actionable change in our workflow.
Similar to Biglietti, prego! A ticket for the (command) bus (20)
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j
Dr. Jesús Barrasa, Head of Solutions Architecture for EMEA, Neo4j
Découvrez les dernières innovations de Neo4j, et notamment les dernières intégrations cloud et les améliorations produits qui font de Neo4j un choix essentiel pour les développeurs qui créent des applications avec des données interconnectées et de l’IA générative.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...kalichargn70th171
A dynamic process unfolds in the intricate realm of software development, dedicated to crafting and sustaining products that effortlessly address user needs. Amidst vital stages like market analysis and requirement assessments, the heart of software development lies in the meticulous creation and upkeep of source code. Code alterations are inherent, challenging code quality, particularly under stringent deadlines.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
WhatsApp offers simple, reliable, and private messaging and calling services for free worldwide. With end-to-end encryption, your personal messages and calls are secure, ensuring only you and the recipient can access them. Enjoy voice and video calls to stay connected with loved ones or colleagues. Express yourself using stickers, GIFs, or by sharing moments on Status. WhatsApp Business enables global customer outreach, facilitating sales growth and relationship building through showcasing products and services. Stay connected effortlessly with group chats for planning outings with friends or staying updated on family conversations.
106. COSA È UN COMANDO?
È un messaggio
tramite il quale si
comunica al sistema
che si vuole fare
qualcosa
[ request ]
[ command ]
[ command bus ]
[ command handler ]
(non restituisce nulla)
107. COSA È UN EVENTO?
È un messaggio
tramite il quale il
sistema comunica
che è accaduto
qualcosa
[ tipicamente in un
command handler ]
[ event ]
[ event bus ]
[ subscriber 1 ] [ subscriber 2 ]
123. Rectangle.php
class Rectangle
{
private $width;
private $height;
public function getWidth()
{
return $this->width;
}
public function setWidth($width)
{
$this->width = $width;
}
public function getHeight()
{
return $this->height;
}
public function setHeight($height)
{
$this->height = $height;
}
}
125. Somewhere.php
$rectangle = new Rectangle();
$rectangle->setWidth(100);
$rectangle->setHeight(50);
$rectangle = new Rectangle();
NON È UN RETTANGOLO!
126. Rectangle.php
class Rectangle
{
private $width;
private $height;
public function __construct($width, $height)
{
$this->width = $width;
$this->height = $height;
}
public function getWidth()
{
return $this->width;
}
public function getHeight()
{
return $this->height;
}
}
156. SellTicket.php
class SellTicket
{
//private properties declaration...
public function __construct(
$id, $customerId, $trainNumber, $departure
) {
$this->id = $id;
$this->customerId = $customerId;
$this->trainNumber = $trainNumber;
$this->departure = $departure;
}
public function getCustomerId() {...}
public function getTrainNumber() {...}
public function getDeparture() {...}
public function getId() {...}
}
179. Customer.php
class Customer
{
private $id;
private $email;
public function __construct($id, $email)
{
$this->id = $id;
$this->email = $email;
}
public function getId() {...}
public function getEmail() {...}
}
188. TicketSold.php
class TicketSold
{
//private properties declarations...
public function __construct($trainNumber, $customerId, $ticketId)
{
$this->trainNumber = $trainNumber;
$this->customerId = $customerId;
$this->ticketId = $ticketId;
}
public function getCustomerId() {...}
public function getTicketId() {...}
public function getTrainNumber() {...}
}
221. TicketOfficeException.php
class TicketOfficeException extends Exception
{
public static function createWithDetails($details)
{
$e = new static();
$e->setDetails($details);
return $e;
}
public function toArray()
{
$a['error']['code'] = $this->getCode();
$a['error']['message'] = $this->getMessage();
$a['error']['details'] = $this->getDetails();
return $a;
}
public function toJson()
{
return json_encode($this->toArray());
}
public function setDetails($details) {...}
public function getDetails() {...}
}
231. COMMAND
‣Si usa per muovere il dominio
‣Va a buon fine per definizione
‣Non restituisce nessun risultato
232. COMMAND HANDLER
‣ Gestisce il comando
‣ Effettua validazioni di dominio
‣ Muove concretamente il dominio
‣ Solleva eccezioni in caso di problemi
233. EVENT
‣ Viene sollevato a fronte di qualcosa accaduto nel
dominio (es: UserRegistered)
‣ Contiene informazioni arbitrarie
234. SUBSCRIBER
‣ Viene usato per eseguire azioni in risposta a
degli eventi
‣ Non può muovere il dominio, al massimo
inoltra la richiesta ad un comando
‣ Può operare autonomamente se la sua azione
è destinata all'esterno del dominio
245. Approfondimenti
A wave of command buses by Matthias Noback
http://php-and-symfony.matthiasnoback.nl/2015/01/a-wave-of-command-buses/
SimpleBus Library
http://simplebus.github.io/MessageBus/
Martin Eckardt Bachelor Thesis on CQRS and Event Sourcing
https://drive.google.com/file/d/0B_enB2DMKeyzbF96VjdKdjIzOHc/view
Bounded Context by Martin Fowler
https://martinfowler.com/bliki/BoundedContext.html
Ticket Office Sample Project
https://github.com/magobaol/ticket-office