The Joomla Community is made of volunteers passionate by sharing their knowledge, by helping others, and are interested in the development of the Joomla ecosystem. These women and men are the true heart of Joomla and they are my friends since a decade.
You can share your knowledge with articles, tutorials, podcasts, videos, conferences, but also by publishing a book. This last option isn't the most usual in the IT sector.
So when a major of the Joomla community publishes a book about developing extensions for Joomla, I couldn't miss this opportunity to read it, and to ask some questions to his author.
Carlos M Cámara Mora is a Joomla! expert and cofounder at Hepta Technologies, a web development company, with a focus on developing long-lasting websites and applications that help businesses own their logic and data. As a Joomla! Expert, Carlos has helped site owners around the world to develop the right solution for their business, using Joomla! and developing custom solutions.
When Carlos published his first book about developing extensions for Joomla 5, I've contacted him with some questions about his amazing project. With his agreement, I publish here his answers, and I bet you'll learn a lot about him, about his book, and about his projects.
Holà Carlos, can you briefly introduce yourself and share your background in Joomla?
I started to work with Joomla to manage a student portal at the university. At that time I was a huge fan of the French CMS SPIP which was more oriented to create magazines and had a great community in Spanish and in French language. Anyway, I wanted to help my fellow students and I started to manage and learn Joomla!.
As I was interested in web development, I started to do some freelance projects to get some extra money and I even paid some fees of my Master degree on Electronics with a Joomla 1.0 to a Joomla 1.5 migration ;)
Anyway, when I started to take Joomla more seriously was after attending at the first JAB in 2010.
What inspired you to write this book on developing extensions for Joomla! 5?
I love reading books for fun, and of course I have read lots of books about PHP and Joomla! development. Some of these not only showed me how to do things, but they also inspired me.
On this book I saw the opportunity to help other people interested in development and contribute to the Joomla ecosystem.
Could you provide an overview of your book and its intended audience?
The book guides you on the process of developing a full project with Joomla!. It starts proposing a quick and easy way to plan your extension. Then it gets into the coding details, trying to write the least code possible to develop our goal.
The audience of this book is anyone interested in developing their own tools and wants to make it easier using Joomla!.
What do you believe sets your book apart from other resources on Joomla?
This book is the most complete resource to start developing extensions for Joomla! 5. I checked lots of resources to write this book and I tested all the information I found. For some parts there was not that much information and I had to check directly into the Joomla! code itself. There is not a more up to date and complete guide to Joomla! 5 developments anywhere else ;)
Can you describe your process for researching and writing?
During the writing process, I worked daily for a couple of hours in the book. I usually spent one hour writing and testing code and the other hour writing and researching.
When writing every piece of code, I removed every part of non-essential code. My main goal was to illustrate the concept with the minimum amount of code possible.
Researching for the book was fun because I had to look further into the PHP world and understand modern design patterns that are used in the architecture of Joomla! 5.
How did you organize the content to make it accessible to readers?
Packt proposed a great structure for each chapter, in which you start telling the readers what they are about to learn. From that point, I focused on explaining first the concepts we need to manage for the section and after showing the code, I explained what the code does.
Besides that the book develops a project manager extension, and you may follow the whole process or jump into the topic you want to learn.
Who is the target audience for your book, and what level of expertise do you think is necessary to benefit from it?
To be honest, I wrote this book for my past self. The one who started developing a component and looked into other books, and forums to find the answers. So the target audience is someone with some basic PHP and Object oriented programming knowledge.
In any case, the book follows the principle of keeping things as simple as possible so any advanced Joomla! Webmasters with some interest in coding will be able to take advantage of it.
Can you share some specific use cases or scenarios where your book can be particularly helpful?
This book is useful when you want to learn about developing extensions for Joomla, as it guides you through all the different extension types you may need.
It is also helpful when you want to customize the design of your Joomla! site. There are 2 full chapters covering template overrides and child templates which are a great way of creating your own designs with Joomla!
Finally, I put lots of effort in writing the Web Services and plugins chapters because I think those features can help any web administrator to create almost anything they need.
What are some key Joomla concepts that you believe readers must grasp, and how does your book address these concepts?
Joomla! Forms is a powerful concept and I have not found anything easier to use in other platforms. The possibility of creating a featured-rich form just writing a simple XML file is really powerful. I think they are so great, the book has a full chapter about them.
Also, Web Services allow you to develop awesome platforms. I have the opportunity to use them in lots of my services, and they make things easier in any case. In the book, not only do I explain how to add a Web Service to your extension, but I also explain how you can consume Joomla! Web Services.
Finally, the Child Templates feature, in my opinion, is a game changer. Not only it gives us a feature other CMS already have, but it is really well-designed and it doesn’t affect the performance.
In your experience, what are the common challenges that users face with the development of extensions for Joomla, and how does your book address or overcome these challenges?
Joomla! Extensions can be really powerful, and with the new architecture, we have lots of flexibility in what we can do with our extensions. This comes with a cost that in Joomla architecture is reflected in some code that might look “boilerplate code”. It is not, most of this code that is irrelevant to your extension, it’s needed when you want to add some features to your extension, but at the beginning you need it.
In my book, I have tried to focus the code on what you really need to know. I try to explain this “needed” code in the simpler terms possible so that the reader understands its importance.
In any case, all the code you see in the book is properly explained and completely necessary to build a minimum Joomla! extension.
Can you share some practical advice or tips for readers who want to enhance their Joomla skills beyond what's covered in the book?
Show me the code!!!
First, to learn to code you need to code, so find an interesting project and start building it. It doesn’t matter if you cannot develop exactly as you want. Try to write the simplest code to make it functional. Once it is working, keep improving it.
Then, share your code. Don’t be afraid of what others might think of your code. You are learning. Also try to contribute to other projects. Joomla Bugs and Fun sessions are a great way to help.
Given the dynamic nature of technology, how do you plan to keep the content of your book up-to-date with the future Joomla developments?
Definitely!! I need to check with Packt, but I am already thinking about the Joomla! 6 edition of the book.
How does your book address the integration of Joomla with other technologies, frameworks, or platforms? Are there any specific tools or extensions you recommend?
The book doesn’t show this integration specifically, but it does cover in some detail the integration we already have with other frameworks. One chapter I’m specially proud of is the Command Line Interface one, and it covers the new Joomla CLI which is basically an integration of the Symphony Command Line Interface.
In your opinion, what are the future trends and developments we can expect to see in the Joomla ecosystem, and how might your book help readers stay ahead of these trends?
Joomla! will keep evolving and adapting to the new challenges of the web. We have now a more modern architecture ready to use current and future programming design patterns. We will keep integrating libraries from other frameworks and developing our own innovative solutions as we made in the past. In every Joomla! major release we have been one step ahead other CMS and we will keep that trend in the future.
Et voilà!
If you plan to learn how to develop extensions for Joomla, Carlos's book is the Must have. Personally, I've offered a copy to Maxime, my interm, so he could learn from the best.
I can't end this interview without express my sincere gratitude to Carlos for his help, for his dedication, and his time. Not only for his answers published here, but also for the help he offered to Maxime, for few months, for free. Mucha Gracias, muy amigo.
The Joomla Community is made of volunteers passionate by sharing their knowledge, by helping others, and are interested in the development of the Joomla ecosystem. These women and men are the true heart of Joomla and they are my friends since a decade.
You can share your knowledge with articles, tutorials, podcasts, videos, conferences, but also by publishing a book. This last option isn't the most usual in the IT sector.
So when a major of the Joomla community publishes a book about developing extensions for Joomla, I couldn't miss this opportunity to read it, and to ask some questions to his author.
Carlos M Cámara Mora is a Joomla! expert and cofounder at Hepta Technologies, a web development company, with a focus on developing long-lasting websites and applications that help businesses own their logic and data. As a Joomla! Expert, Carlos has helped site owners around the world to develop the right solution for their business, using Joomla! and developing custom solutions.
When Carlos published his first book about developing extensions for Joomla 5, I've contacted him with some questions about his amazing project. With his agreement, I publish here his answers, and I bet you'll learn a lot about him, about his book, and about his projects.
Holà Carlos, can you briefly introduce yourself and share your background in Joomla?
I started to work with Joomla to manage a student portal at the university. At that time I was a huge fan of the French CMS SPIP which was more oriented to create magazines and had a great community in Spanish and in French language. Anyway, I wanted to help my fellow students and I started to manage and learn Joomla!.
As I was interested in web development, I started to do some freelance projects to get some extra money and I even paid some fees of my Master degree on Electronics with a Joomla 1.0 to a Joomla 1.5 migration ;)
Anyway, when I started to take Joomla more seriously was after attending at the first JAB in 2010.
What inspired you to write this book on developing extensions for Joomla! 5?
I love reading books for fun, and of course I have read lots of books about PHP and Joomla! development. Some of these not only showed me how to do things, but they also inspired me.
On this book I saw the opportunity to help other people interested in development and contribute to the Joomla ecosystem.
Could you provide an overview of your book and its intended audience?
The book guides you on the process of developing a full project with Joomla!. It starts proposing a quick and easy way to plan your extension. Then it gets into the coding details, trying to write the least code possible to develop our goal.
The audience of this book is anyone interested in developing their own tools and wants to make it easier using Joomla!.
What do you believe sets your book apart from other resources on Joomla?
This book is the most complete resource to start developing extensions for Joomla! 5. I checked lots of resources to write this book and I tested all the information I found. For some parts there was not that much information and I had to check directly into the Joomla! code itself. There is not a more up to date and complete guide to Joomla! 5 developments anywhere else ;)
Can you describe your process for researching and writing?
During the writing process, I worked daily for a couple of hours in the book. I usually spent one hour writing and testing code and the other hour writing and researching.
When writing every piece of code, I removed every part of non-essential code. My main goal was to illustrate the concept with the minimum amount of code possible.
Researching for the book was fun because I had to look further into the PHP world and understand modern design patterns that are used in the architecture of Joomla! 5.
How did you organize the content to make it accessible to readers?
Packt proposed a great structure for each chapter, in which you start telling the readers what they are about to learn. From that point, I focused on explaining first the concepts we need to manage for the section and after showing the code, I explained what the code does.
Besides that the book develops a project manager extension, and you may follow the whole process or jump into the topic you want to learn.
Who is the target audience for your book, and what level of expertise do you think is necessary to benefit from it?
To be honest, I wrote this book for my past self. The one who started developing a component and looked into other books, and forums to find the answers. So the target audience is someone with some basic PHP and Object oriented programming knowledge.
In any case, the book follows the principle of keeping things as simple as possible so any advanced Joomla! Webmasters with some interest in coding will be able to take advantage of it.
Can you share some specific use cases or scenarios where your book can be particularly helpful?
This book is useful when you want to learn about developing extensions for Joomla, as it guides you through all the different extension types you may need.
It is also helpful when you want to customize the design of your Joomla! site. There are 2 full chapters covering template overrides and child templates which are a great way of creating your own designs with Joomla!
Finally, I put lots of effort in writing the Web Services and plugins chapters because I think those features can help any web administrator to create almost anything they need.
What are some key Joomla concepts that you believe readers must grasp, and how does your book address these concepts?
Joomla! Forms is a powerful concept and I have not found anything easier to use in other platforms. The possibility of creating a featured-rich form just writing a simple XML file is really powerful. I think they are so great, the book has a full chapter about them.
Also, Web Services allow you to develop awesome platforms. I have the opportunity to use them in lots of my services, and they make things easier in any case. In the book, not only do I explain how to add a Web Service to your extension, but I also explain how you can consume Joomla! Web Services.
Finally, the Child Templates feature, in my opinion, is a game changer. Not only it gives us a feature other CMS already have, but it is really well-designed and it doesn’t affect the performance.
In your experience, what are the common challenges that users face with the development of extensions for Joomla, and how does your book address or overcome these challenges?
Joomla! Extensions can be really powerful, and with the new architecture, we have lots of flexibility in what we can do with our extensions. This comes with a cost that in Joomla architecture is reflected in some code that might look “boilerplate code”. It is not, most of this code that is irrelevant to your extension, it’s needed when you want to add some features to your extension, but at the beginning you need it.
In my book, I have tried to focus the code on what you really need to know. I try to explain this “needed” code in the simpler terms possible so that the reader understands its importance.
In any case, all the code you see in the book is properly explained and completely necessary to build a minimum Joomla! extension.
Can you share some practical advice or tips for readers who want to enhance their Joomla skills beyond what's covered in the book?
Show me the code!!!
First, to learn to code you need to code, so find an interesting project and start building it. It doesn’t matter if you cannot develop exactly as you want. Try to write the simplest code to make it functional. Once it is working, keep improving it.
Then, share your code. Don’t be afraid of what others might think of your code. You are learning. Also try to contribute to other projects. Joomla Bugs and Fun sessions are a great way to help.
Given the dynamic nature of technology, how do you plan to keep the content of your book up-to-date with the future Joomla developments?
Definitely!! I need to check with Packt, but I am already thinking about the Joomla! 6 edition of the book.
How does your book address the integration of Joomla with other technologies, frameworks, or platforms? Are there any specific tools or extensions you recommend?
The book doesn’t show this integration specifically, but it does cover in some detail the integration we already have with other frameworks. One chapter I’m specially proud of is the Command Line Interface one, and it covers the new Joomla CLI which is basically an integration of the Symphony Command Line Interface.
In your opinion, what are the future trends and developments we can expect to see in the Joomla ecosystem, and how might your book help readers stay ahead of these trends?
Joomla! will keep evolving and adapting to the new challenges of the web. We have now a more modern architecture ready to use current and future programming design patterns. We will keep integrating libraries from other frameworks and developing our own innovative solutions as we made in the past. In every Joomla! major release we have been one step ahead other CMS and we will keep that trend in the future.
Et voilà!
If you plan to learn how to develop extensions for Joomla, Carlos's book is the Must have. Personally, I've offered a copy to Maxime, my interm, so he could learn from the best.
I can't end this interview without express my sincere gratitude to Carlos for his help, for his dedication, and his time. Not only for his answers published here, but also for the help he offered to Maxime, for few months, for free. Mucha Gracias, muy amigo.
About Daniel
Passionate about the Web since 2007, Daniel defends the widow and the orphan of the Web by creating W3C-compliant sites. With his experience, he shares his knowledge in an open source mindset. Very involved in favor of the Joomla CMS since 2014, he is the founder of the Joomla User Group Breizh and a speaker in Joomla events.