The json:api specification provides a powerful format to express complex data structures and relationships between records in a predictable manner. However, consuming json:api can be daunting: its data structure is deep, navigating related records can be expensive, and manipulating data on the server requires building verbose request bodies.
Are you interested in a tool that solves decoupled problems before they start? Buckle up and get ready to simplify JSON API interactions with jsonmonger!
Object oriented programming (OOP) is a system design philosophy that aims to treat aspects of the system as "things" that consist of attributes and behaviors. This concept may be easier to understand if you consider how objects in the real world work, such as a dog. A dog has attributes such as breed, hair color, and weight, while it also has behaviors such as barking, running, and sleeping.
This session will provide understanding for the fundamental object oriented programming concepts, as they apply to PHP, while attempting to explain the value of the art. We will look at and attempt to demystify the following concepts:
Class - A template for objects that define the data (attributes) and/or operations (behaviors) the objects may use.
Object - A single instance of class.
Abstraction - The process of picking out common features of a system in order to provide greater reusability of those features.
Encapsulation - Wrapping related elements (data and/or procedures) of a system together to create a new abstraction,
Inheritance - A feature of OOP that allows the creation of different sub-types of a class. In other words, the ability for a class to inherit the features of another class.
Interfaces - The ability to provide strict specifications for a class to create predictability and thus reiability within a system.
Bonus: Programming to Interaces - A technique for creating systems that are both easily extendable and reliable in their extension.
Intended for developers who have no, or limited, experience with Drupal 8 or OOP.
We'll go over architecture options for web applications built in Drupal 8, including modern PHP dependency management with Composer, Content Entities vs Nodes and when each is appropriate. We'll look at some excellent combinations of contrib modules and glue code to create flexible architectures.
Who is this for?
Though extensive experience with these is not necessary, you are at least familiar with:
Site designers love tab panels, accordion sets, slide shows, and hover-drop-down menu bars: anything to squeeze more content into less space. Unfortunately, many out-of-the box tools to generate these components can be severely lacking in accessibility compliance. At some point, you may wish to just craft your own accessibility compliant components, but how do you do that?
* How to apply and manipulate needed ARIA properties as users interact with such controls.
* Specific tips for providing a slideshow (carousel) experience that balances designer desires with accessibility realities
Learn how you can apply your Drupal expertise and exposure to structured data in advanced Search Engine advertising. This session is designed to help you understand how advertising works at an enterprise level and help guide you through the optimization process.
Advanced advertising requires an understanding/familiarity of basic software development tactics to help automate your ad campaign optimizations. My goal is to give you a glimpse into this world, and hopefully, help you understand why those pesky marketers are making those strange requests.
Converting an organization to using an open-source platform can be a challenging task. We'll take a look at how we converted Chattanooga State to use Drupal for the majority of their web presence, and show some examples of the sites and portals that are being used on campus. Some examples we will discuss include:
Chattanooga State Website: Migrated to Drupal from a proprietary CMS
TigerWeb: Our student portal that we replaced with Drupal
TCAT Time Tracking System: A system for tracking clock hours for technical programs
Drupal is not the best solution for every website.
There. I said it.
Sometimes a better solution is one that is faster to deploy, easier to maintain and has fewer security risks. Sometimes that solution is a static site.
Have I just committed a sacrilege? Am I suggesting we all ditch our careers as Drupal developers?
Fear not. Drupal is often still your best option. But it's true, static site generators can sometimes do the job better and faster.
This session will explore several ways to use static site generators to create and deploy sites quickly without the heavy lifting of databases, without the headaches of security patches, and without long, steep learning curves.
We'll talkl about several types of static generators, but we'll also make sure to discuss when and why Drupal is still a better choice.
So you've lovingly maintained and curated your Drupal site, carefully crafting content types for different types of content, setting up taxonomy vocabularies, updating content, enrolling users, building views...all the drupally things you do when you have a content driven web application. But now, you want to update your site to the latest version of Drupal.
But you have all this content! And tons of images! And twelve different content types...and 10,000 users with 6 different roles...and...and...
Drupal 8 has some built in components that significantly reduce the effort it takes to migrate vocabularies, content types, roles, users, taxonomy terms, and yes...content (including files and images).
In this session we'll take a look at the different components of Drupal 8 that take care of some of the heavy lifting when it comes to moving your carefully, lovingly curated Drupal site to Drupal 8. We'll discuss some of the "gotchas" to be aware of, and some tips on making your move to Drupal 8 a reality.
So you have some or most of the basics of working with Git down, but what about some of the more advanced features? In this session we will go over some of the more advanced tools that Git has to offer, as well as talk about some of the more lower-level tools that Git provides and some workflow ideas.
You can share the publishing article wherever and whenever you want.
User Experience is easily handled/controlled.
You can update your frontend platform keeping the data, so that you wont recreate all content.
Lightning Talks⚡ are short (5min-ish) impromptu sessions on anything you want. Do you have something you’re proud of? Do you have a new technique that’s saving you time? Have you learned about something cool? Get up and share!