CodeIgniter is a fascinating framework, and it is ideal when you are entering the world of programming, you already know how to program in PHP and what this language and the technologies that revolve around it, such as HTML, CSS and JavaScript, and want to go a step further, you want to start developing in a more professional, efficient and scalable way over time; although the fact of using CodeIgniter or another framework is not a guarantee that you will be able to take that step, since the most important thing is that you know how to use it, and that is what this book is for, so that you have a progressive advance, from scratch and with a curve of moderate learning; taking the first steps with CodeIgniter explaining what each component works for and, at once, doing practice, programming your first application that will surely be the first of many more.
Although I mentioned earlier that CodeIgniter is ideal for a beginner, it does not necessarily have to be used as a simple stepping stone to reach higher and work with more complete and complex frameworks such as Laravel or Symfony.
CodeIgniter is a fairly powerful framework that would be more than enough for most of the applications that we create in our day to day; It brings functionalities to work in an organized way through MVC, a routes layer, easy creation of Rest Api, validations, form processing, filters to intercept requests and a lot more functions that will surely help you when programming your applications.
Codeigniter, once learned, will help you get to know larger frameworks like Laravel, as many of its features exist in Laravel.
Who is this book for
This book is for anyone who wants to build their first applications in CodeIgniter 4, this writing offers a step-by-step introduction to the framework, knowing the most relevant aspects of it and is focused above all on practice; It is assumed that the reader has knowledge and has developed in PHP and related technologies of the language, such as JavaScript, HTML and CSS, since, remember that to use any framework, you have to have the bases that support it, that is, your programming language.
The book is aimed at those people who want to learn something new, learn about a framework that has very little documentation, who want to improve a skill in web development, who want to grow as a developer and who want to continue scaling their path with other frameworks superior to this one. As long as you identifies at least some of the above considerations, this book is for you.
Introduction
This guide is intended to get you started with CodeIgniter 4; with this, we are going to establish two things:
- We do not pretend that the person gets to know 100% Codeigniter from zero to expert, since it would be too big an objective for the scope of what is written here, if not, to know its ecosystem, what it offers us and how it works based on several examples and/or small applications with limited scope.
- The reader is expected to have knowledge of JavaScript, HTML and CSS as they are necessary to be able to develop in any PHP framework, or server-side web you want to learn; on my website desarrollolibre.net I have multiple resources that may interest you to take the first steps with various technologies for free; just like on my YouTube channel, you have a lot of free, unique and quality material.
To follow this book all you need is a Windows, Linux or MacOS computer and a willingness to learn!
I strongly recommend that you follow me on at least one of my social networks; and that is, so future updates on the book, you'll be the first to know.
This book has a total of 21 chapters, it is recommended that you read in the order in which they are arranged and as we explain the components of the framework, go directly to the practice, replicate, test and modify the codes that we show in this book.
- Chapter 1: This chapter is intended to explain the environment needed to develop in CodeIgniter 4.
- Chapter 2: We take the first steps with the frameworks, we will know the official website of the framework, installation forms and advantages of each one of them, we install the framework, we will know the initial aspects on how to run the framework, configure a database, create our first components, the use of migrations for table management and we will see several cases on how to work with them, we will work with the MVC and create each of these components that define it from scratch, routing and of course, finishing the chapter with the traditional CRUD for one of our entities.
- Chapter 3: It is a practice for you, in which you have to create another CRUD; putting into practice everything seen in the first chapter.
- Chapter 4: You will know how to use the routes, grouped routes, their options and the different types.
- Chapter 5: We will know the use of the session and also of the flash session to save data and present it to the user.
- Chapter 6: You will learn to manage views in a reusable way.
- Chapter 7: We will see how to use a more modular scheme when defining controllers for each type of module.
- Chapter 8: We will know how to work with HTML forms and apply validations from the server side in CodeIgniter, knowing the types of validations, creating them and applying validations from the controller; to then finally show the errors by the view; we will also learn how to use helper functions in our forms.
- Chapter 9: We will learn more about models, some properties that we can define in them, the use of functions and common example cases.
- Chapter 10: We will learn to use filters to intercept requests; as a practical case, we will create an authentication module with login for our application in which we will protect the management module or dashboard.
- Chapter 11: In this chapter we build a Rest Api type CRUD that can be consumed with JSON or XML; being CRUD type operations and working mainly from the server side; it will be a process similar to the CRUD that we created in Chapter 2, but with some variations that are typical of this type of structure.
- Chapter 12: In this chapter you will learn to generate test data with seeders which are ideal for when we are starting to develop.
- Chapter 13: In this chapter we will learn how to handle the relational schema of the database in CodeIgniter; we will look at one-to-many and many-to-many relationships.
- Chapter 14: In this chapter we are going to work with uploading files in our application, to upload images to our movie model.
- Chapter 15: This chapter provides an introduction to the use of the libraries and help functions and how to use them.
- Chapter 16: This chapter we will adapt Bootstrap 5 components in the application.
- Chapter 17: This chapter we will create an end user module with list and detail page.
- Chapter 18: This chapter we will make some changes in the Rest Api created previously to define additional methods such as upload, pagination, among others.
- Chapter 19: App with Vue, coming soon.
- Chapter 20: In this chapter we will learn how to integrate the PayPal platform in CodeIgniter, in order to process payments directly from the application.
- Chapter 21: This chapter we will know how to integrate CodeIgniter shield to handle authentication and authorization; also, we will create a small project with which we will learn to manage groups and permissions.
Step by step guide
This book offers a step by step introduction to take the first steps in CodeIngiter, we will see how to create CRUDs processes, validations, create Rest Apis, JSONs responses to later consume through JavaScript, create filters as middleware to work between intermediaries between the controller and the requests and work with Shield, for the authentication and authorization system.
Without further ado, remember that this is a book for beginners and by the end of the book, you will be able to build any basic application with CodeIgniter 4 and know more than the basics of the framework.
With Shield, we can create a simple system of authentication, protection through groups and permissions; We will see all this and much more in the book.
- Andrés Cruz
![Andrés Cruz Andrés Cruz](/public/images/perfil.jpg)
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter