A real-life CakePHP project using Queue and StateMachine for an automated release process.
Fully automated, or partially using certain manual triggers.
A demo and small dive into combining those powerful tools inside a Cake app.
This talk will take listeners through a journey of an API with no documentation to one fully documented with OpenAPI schema.
This will have an intro on OpenAPI and why it's beneficial to all projects even if you're API is just internal. Next, we'll cover some basic OpenAPI YAML schema, show a few advanced things you can do, and of course look at Swagger, ReDoc, and some of the other OpenApi tools like client generators.
SHAMELESS SELF PLUG alert. I will spend a few minutes (tops) plugging my library: https://github.com/cnizzardini/cakephp-swagger-bake but only towards the end with tools to show an option on how to streamline maintaining your OpenApi. I will also throw out a few seconds on a larger project I am working on called MixerApi which I'm hoping to be a CakePHP alternative to Symfony Api Platform.
This talk will cover the ins and outs of building a CakePHP plugin, including deciding on how to test built code, what a typical release process looks like, and when to build something from scratch vs integrate with an existing PHP library. We’ll cover CakePHP Queue as a case-study in how the plugin building process happens in the core, and what practices can be transferred to your organization.
Dependency Injection, and Dependency Injection Containers are some of the bigger buzzwords in PHP frameworks in the past few years. I'll be reviewing what dependency injection is at a high-level. Then we'll look at why CakePHP how dependency injection works in CakePHP without a container. In 4.2 we'll be adding an injection container for use in applications. I'd like to cover how that integration will work and give some guidelines/recommendations for how to use a Dependency Injection container in your application.
Algorithms are much like design patterns. They are a way of collaborating and sharing experience. As we think through how to solve a specific programming problem, we’re actually designing (or using) an algorithm. We’ll design an algorithm to convert numbers from decimal to hexadecimal and back--in our heads, without calculators or computers. That sounds hard, right? We'll make it easy by learning to work from the known to the unknown. We'll start by converting seconds, minutes, hours, days. We can all do that! Then we'll use the SAME algorithm to convert between decimal and hexadecimal and back. We'll implement our algorithms in PHP. We'll know the code is correct because we first did the calculations by hand.
The CakePHP Fixture Factories plugin proposes an elegant alternative to CakePHP Fixtures.
It:
- increases the speed of your tests,
- reduces the effort of writing and maintaining tests,
- enhances the readability of your tests: you get what you seed in your test, tests do not share test fixtures,
- offers to manage your test DB schema with the same migrations you use on your regular DB.
You will never have to create, maintain or declare any test fixtures again.
In this presentation, I will explain the drawbacks of the actual CakePHP fixtures tools, present how the factories are baked, what they do, and how they enable you to inject data in test databases in a very convenient fashion.
In conclusion, I will propose to the community to consider having the plugin replace the CakePHP fixtures in future major releases.