Virtual 2021

The following are the talks defined for the event.

WORKSHOPS - Thu, October 7th

12:00
14:30

Workshop 1 - Jorge Gonzalez

Jorge González

Topics that will be covered:

0:00 - Docker development environment for CakePHP

15:56 Middlewares
- Use cases and examples

30:05 Security
- Discussion on all the provided security features of the framework, how the work and the attacks they are aiming to mitigate

1:31:36 Performance optimization
- How to detect bottlenecks in your applications
- Typical performance improvements for your production environment
- Caching

2:04:49 Events
- When & Why
- How to work with the event system

Go to slides

Video

14:45
17:15

Workshop 2 - Michael Hoffmann

Michael Hoffmann

Topics that will be covered:

- 0:00:00 -Setup login action in CakePHP
- 0:29:10 - Vite with hot reloading
- Vue.js
- tailwind css
- Using the auth/auth plugins with a JS framework
- Creating a small ToDo demo app with this stack

Go to slides

Video

17:30
20:00

Workshop 3 - Mark Story

Mark Story

Topics that will be covered:

- 0:04:25 Leveraging new style fixtures
- 0:48:26 Using the DI container
- set up logging, and database config from the container.
- set up services into controllers.


- Talk about new fixtures and how they will work.
- Reuse migrations for test schema.
- Using factory methods to create objects, or cakephp-fixture-factories.
- Demo of creating simple factories using a trait and method. Fixture-factories plugin

- 1:30:13 Browser automation testing with Panther.
- Why do browser automation.
- Using panther to operate pages.
- 2:17:13 Helpers you may need.

Go to slides

Video

CONFERENCE - Fri, October 8th

12:15
13:00

Passbolt Keynote - How does your Cake test?

Juan Pablo Ramirez

Passbolt Keynote

How does your Cake test?

Any software ought to be automatically tested. This ensures the application's integrity over time and evolution.

Testing with CakePHP has recently evolved with three significant features co-developed with Nicolas Masson, easing the test driven development experience:
- Migration-managed test databases,
- Trigger-based test database cleaning to speed up the suite,
- Fixture factories to generate complex test fixtures in no time.

At Passbolt, we grabbed the opportunity to refactor our code base and enhance the quality of our tests.

In this presentation, I will describe the test code-base and the continuous integration cycles of the Passbolt API with code examples, from unit to integration tests and dummy data generation.

In a second part, I will explain how to efficiently use the fixture factories plugin, with extensive insights into the plugin's code-base.

Sources:
https://github.com/passbolt/passbolt_api
https://github.com/vierge-noire/cakephp-test-migrator
https://github.com/vierge-noire/cakephp-test-suite-light
https://github.com/vierge-noire/cakephp-fixture-factories

Go to slides

Video

13:00
13:30

Components Reconsidered

Sho Ito

CakePHP implements a way to reuse code in controllers called Components. Creating components keeps controller code clean.
However, components are not the only mechanism to reuse code in controllers. We can also reuse code by using Traits. Furthermore, we can use Dependency Injection in CakePHP 4.2 and later. Which do you use better Components, Traits or Dependency Injection?
In this talk, I will introduce the each of the three mechanisms and consider what use cases each of them is suitable for.

Go to slides

Video

13:30
14:00

Automatically Distributing Reference Queries to Read Replica in CakePHP4

Yuki Kanazawa

In order to handle large amounts of accesses and large amounts of data, it is essential to have a mechanism to distribute reference queries to Replica.
CakePHP does not have distributing reference queries to Replica, but it can be done with a plugin.

cakephp-master-replica is a great plugin to do this.

This can be achieved by implementing a process to switch to Replica before executing a reference query, but if it is simply implemented, it will be cumbersome to write the switching process every time.

In this proposal, I will introduce the cakephp-master-replica plugin and show an example implementation in CakePHP4 that automatically switches to Replica when a reference query is issued.

Go to slides

Video

14:00
14:30

Leverage the IDE in CakePHP development

Mark Scherer

How to make development not only fun, interesting and fast, but also how to write future proof code and refactorability.

We check out different must-have tools and showcase a few best practice approaches.
You will definitely be able to take a few useful things away from this for your own app dev.

Go to slides

Video

14:45
15:15

Fighting COVID-19 with Contact Tracing in Czech Republic

Jiri Havlicek

*) How does the contact tracing work in Czech Republic
*) How the system was built to support 4000 concurrent users with realtime operations (calls, SMS messages etc.)
*) How does the system integrate with multiple government information systems of Ministry of Health and Interior Ministry
*) How does CakePHP 4 support all these business processes from a technological point-of-view

The slides are not available yet!

Video

15:15
15:45

Our Standards and Why We Use Them

Christopher Miller

Here at Jump Twenty Four, We adhere to some strict standards for our code. We look at the questions of Why we use the standards we use, What coding standards we apply, The benefits of applying coding standards, and an example of using the coding standards across projects.

In Laravel we apply PHP Linter, PHPStan, ECS, Englightn and Test Driven Development.
In CakePHP the only one we cant apply is Enlightn as that is Laravel specific.

Using a simplified blogging application as an example of how we apply the packages we need to the project, how we use those packages, how to fix things those packages suggest to us, and the reason we apply certain standards are all covered.

Go to slides

Video

15:45
16:15

How to re-use code - Utility Classes and PHP Namespaces

Kevin Pfeifer

Sometimes you need to re-use some functionality in multiple places like commands, controller functions or other specific events.
Instead of copying the code and producing duplicate code a good solution are Utility Classes.

In this talk I will go more in depth in the following topics:
* Why we need PHP Namespaces
* How are PHP Namespaces set up in CakePHP
* How do I use PHP Namespaces

Go to slides

Video

16:15
16:45

Distribute private plugins with Satis

Paul Hendriks

I'd like to do a presentation on how to develop private plugins and how to distribute them with Satis..

In Centerdata we use a couple of inhouse plugins, which we re-use in several projects.
In CakePHP2 we used the Git Submodule approach, but since the switch to CakePHP4 we're using Satis; a private composer repository tool.

During the presentation i'll:
* Setup Satis
* Create a CakePHP project
* Bake a plugin
* Push that plugin to GitLab
* Add plugin to Satis
* Open another Cakephp project and include the plugin with Composer

Go to slides

Video

16:45
17:15

Here Be Dragons: Finding the Joy in Software Development

Edward Barnard

There's a strong tendency toward "gate keeping" right now in the 2020s. Senior developers warn "there be dragons" while announcing a "hands off" policy toward the crucial areas of the code base. You and I need to get past that. Where's the fun when you can't touch the dragons? The joy's in _experiencing_ software development, dragons and all. Our industry experiences remarkably high rates of burnout. Looking back across the decades, this is my experience--how to have fun. We look at "the guru", mentoring, imposter syndrome, the need for continuously learning, and thoughts on how we extend the craft of software development.

Go to slides

Video

17:15
17:45

A Grumpy Programmer's Guide To Being A Senior Developer

Chris Hartjes

So you're a "Senior Developer" now? What does that even mean? Is it a title you get for being the last one standing in a difficult environment? Is it a label you get for being older than your peers? If you want to become a "senior developer" what are some things that can help you get there?

In this talk I share my experiences of being a "senior developer" on different projects across different companies across different programming languages. Some of the things discussed include:

* problem isolation
* mentoring
* tooling support
* domain knowledge

While sometimes it just takes time to get to be "senior", these tips can help apply structure to a job that often comes with less coding and more problem solving.

The slides are not available yet!

Video

18:00
18:30

Modern Infrastructure as Code with Ansible

Joe ferguson

Join us as we dive into Ansible, the server management tool designed to help developers keep servers configured properly and running smoothly. We’ll cover the basics and dive into some in-depth configuration options so you can stop treating your servers like pets: which you constantly have to feed and water. Join us as we learn how to turn those pets into cattle in your server farm and turn your infrastructure into code!

Ansible is an agentless server configuration manager which performs tasks over an SSH connection. There is nothing to install on your systems. We’ll cover examples of how to leverage Ansible modules to add users, configure services, set up configuration files, and deploy code to remote systems. Instead of manually performing these tasks, join us as we learn how to write Ansible playbooks to accomplish these tasks and turn our infrastructure into infrastructure as code!

Topic Outline:

Intro to Ansible
What Ansible is good for
What Ansible isn’t good for
Configuring Inventory & Environments
Building Playbooks
Running & Debugging Playbooks
Reuse other playbooks for your needs
Where to get help & other fantastic learning resources

Go to slides

Video

18:30
19:00

NGINX Unit - Modernise your CakePHP deployments

Timo Stark

Using NGINX with PHP-FPM has been the standard to run your Cake-PHP Applications for the last years! But what if I tell you there is something else. Something new from NGINX you can use to power your Cake-PHP Applications? Something you can use to run multiple Applications at the same time and something that can be used to control the number of PHP processes, the certificates used for TLS encryption and the PHP User and Admin options just an API call away. If you are curious what this something is and how I used it to modernise my PHP Deployment strategy and ecosystem join me and learn more about NGINX Unit!

The slides are not available yet!

Video