-
Notifications
You must be signed in to change notification settings - Fork 2k
docs(readme): revamp overview, quick start, and contribution links #9800
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Richin
wants to merge
1
commit into
codeigniter4:develop
Choose a base branch
from
Richin:revamp-readme-file
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+69
−80
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,109 +1,98 @@ | ||
| # CodeIgniter 4 Development | ||
| # CodeIgniter 4 | ||
|
|
||
| [](https://packagist.org/packages/codeigniter4/framework) | ||
| [](https://github.com/codeigniter4/CodeIgniter4/actions/workflows/test-phpunit.yml) | ||
| [](https://github.com/codeigniter4/CodeIgniter4/actions/workflows/test-phpstan.yml) | ||
| [](https://github.com/codeigniter4/CodeIgniter4/actions/workflows/test-psalm.yml) | ||
| [](https://coveralls.io/github/codeigniter4/CodeIgniter4?branch=develop) | ||
| [](https://packagist.org/packages/codeigniter4/framework) | ||
| [](https://packagist.org/packages/codeigniter4/framework) | ||
| [](https://packagist.org/packages/codeigniter4/framework) | ||
| [](https://github.com/codeigniter4/CodeIgniter4/blob/develop/LICENSE) | ||
| [](https://github.com/codeigniter4/CodeIgniter4/pulls) | ||
| <br> | ||
| [](https://github.com/codeigniter4/CodeIgniter4/actions/workflows/test-phpstan.yml) | ||
| [](LICENSE) | ||
|
|
||
| ## What is CodeIgniter? | ||
| CodeIgniter 4 is a modern, lightweight PHP full-stack framework focused on developer productivity, speed, and security. It provides a collection of expressive libraries, a powerful CLI, and an intuitive MVC structure that helps you ship production-ready applications quickly. | ||
|
|
||
| CodeIgniter is a PHP full-stack web framework that is light, fast, flexible and secure. | ||
| More information can be found at the [official site](https://codeigniter.com). | ||
| --- | ||
|
|
||
| This repository holds the source code for CodeIgniter 4 only. | ||
| Version 4 is a complete rewrite to bring the quality and the code into a more modern version, | ||
| while still keeping as many of the things intact that has made people love the framework over the years. | ||
| ## Overview | ||
|
|
||
| More information about the plans for version 4 can be found in [CodeIgniter 4](https://forum.codeigniter.com/forumdisplay.php?fid=28) on the forums. | ||
| - **Lightweight core** with optional packages so you only ship what you need. | ||
| - **Secure by design** thanks to CSRF protection, content security features, and built-in validation. | ||
| - **Developer friendly** CLI (`php spark`) for scaffolding, migrations, tasks, and testing. | ||
| - **Flexible architecture** that embraces PSR standards, Composer autoloading, and namespacing. | ||
|
|
||
| ### Documentation | ||
| ## Requirements | ||
|
|
||
| The [User Guide](https://codeigniter.com/user_guide/) is the primary documentation for CodeIgniter 4. | ||
| - PHP 8.1 or newer | ||
| - `ext-intl` and `ext-mbstring` enabled | ||
| - Recommended: `ext-curl`, `ext-json`, and database-specific extensions (`ext-mysqli`, `ext-pgsql`, etc.) | ||
|
|
||
| You will also find the [current **in-progress** User Guide](https://codeigniter4.github.io/CodeIgniter4/). | ||
| As with the rest of the framework, it is a work in progress, and will see changes over time to structure, explanations, etc. | ||
| > PHP 8.1 reaches end of life on December 31, 2025. Upgrade sooner to stay supported. | ||
|
|
||
| You might also be interested in the [API documentation](https://codeigniter4.github.io/api/) for the framework components. | ||
| ## Quick Start | ||
|
|
||
| ## Important Change with index.php | ||
| 1. **Clone and install dependencies** | ||
| ```bash | ||
| git clone https://github.com/codeigniter4/CodeIgniter4.git | ||
| cd CodeIgniter4 | ||
| composer install | ||
| ``` | ||
|
Comment on lines
+29
to
+34
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This step is for contributors only to the framework development. As such, this is not the go to way of installing this. |
||
| 2. **Bootstrap your environment** | ||
| ```bash | ||
| cp env .env | ||
| php spark key:generate | ||
| ``` | ||
| On Windows use `copy env .env` instead of `cp`. | ||
| Update `.env` with your app name, base URL, and database credentials. | ||
| 3. **Serve the application** | ||
| ```bash | ||
| php spark serve | ||
| ``` | ||
| Visit `http://localhost:8080` to confirm the welcome page loads. | ||
|
|
||
| `index.php` is no longer in the root of the project! It has been moved inside the *public* folder, | ||
| for better security and separation of components. | ||
| ## Common Tasks | ||
|
|
||
| This means that you should configure your web server to "point" to your project's *public* folder, and | ||
| not to the project root. A better practice would be to configure a virtual host to point there. A poor practice would be to point your web server to the project root and expect to enter *public/...*, as the rest of your logic and the | ||
| framework are exposed. | ||
| - `php spark make:controller Home` – scaffold a controller. | ||
| - `php spark make:migration CreateUsers` – generate a database migration. | ||
| - `php spark migrate` – run pending migrations. | ||
| - `php spark routes` – inspect the current routing table. | ||
| - `php spark help` – list available CLI commands. | ||
|
|
||
| **Please** read the user guide for a better explanation of how CI4 works! | ||
| Composer scripts streamline maintenance tasks: | ||
|
|
||
| ## Repository Management | ||
| - `composer test` – run the PHPUnit suite. | ||
| - `composer analyze` – run static analysis (PHPStan + Rector dry run). | ||
| - `composer cs` – check coding standards. | ||
| - `composer cs-fix` – automatically fix coding standards. | ||
| - `composer metrics` – generate PhpMetrics reports. | ||
|
|
||
| CodeIgniter is developed completely on a volunteer basis. As such, please give up to 7 days | ||
| for your issues to be reviewed. If you haven't heard from one of the team in that time period, | ||
| feel free to leave a comment on the issue so that it gets brought back to our attention. | ||
| ## Project Structure | ||
|
|
||
| > [!IMPORTANT] | ||
| > We use GitHub issues to track **BUGS** and to track approved **DEVELOPMENT** work packages. | ||
| > We use our [forum](http://forum.codeigniter.com) to provide SUPPORT and to discuss | ||
| > FEATURE REQUESTS. | ||
| - `app/` – application code (controllers, models, views, configuration). | ||
| - `public/` – web server document root containing `index.php`. | ||
| - `system/` – framework core (avoid editing directly). | ||
| - `tests/` – PHPUnit test suite. | ||
| - `writable/` – runtime storage (cache, logs, sessions, uploads). | ||
|
|
||
| If you raise an issue here that pertains to support or a feature request, it will | ||
| be closed! If you are not sure if you have found a bug, raise a thread on the forum first - | ||
| someone else may have encountered the same thing. | ||
| Configure your web server (Apache/Nginx) to serve the `public/` directory to keep application files outside the public web root. | ||
|
|
||
| Before raising a new GitHub issue, please check that your bug hasn't already | ||
| been reported or fixed. | ||
| ## Documentation & Guides | ||
|
|
||
| We use pull requests (PRs) for CONTRIBUTIONS to the repository. | ||
| We are looking for contributions that address one of the reported bugs or | ||
| approved work packages. | ||
|
|
||
| Do not use a PR as a form of feature request. | ||
| Unsolicited contributions will only be considered if they fit nicely | ||
| into the framework roadmap. | ||
| Remember that some components that were part of CodeIgniter 3 are being moved | ||
| to optional packages, with their own repository. | ||
| - Official User Guide: https://codeigniter.com/user_guide/ | ||
| - In-progress Docs (latest develop): https://codeigniter4.github.io/CodeIgniter4/ | ||
| - API Reference: https://codeigniter4.github.io/api/ | ||
| - Community Forum: https://forum.codeigniter.com/ | ||
| - Slack Community: https://codeigniterchat.slack.com/ | ||
|
|
||
| ## Contributing | ||
|
|
||
| We **are** accepting contributions from the community! It doesn't matter whether you can code, write documentation, or help find bugs, | ||
| all contributions are welcome. | ||
|
|
||
| Please read the [*Contributing to CodeIgniter*](https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/README.md). | ||
|
|
||
| CodeIgniter has had thousands on contributions from people since its creation. This project would not be what it is without them. | ||
|
|
||
| <a href="https://github.com/codeigniter4/CodeIgniter4/graphs/contributors"> | ||
| <img src="https://contrib.rocks/image?repo=codeigniter4/CodeIgniter4" /> | ||
| </a> | ||
|
|
||
| Made with [contrib.rocks](https://contrib.rocks). | ||
|
|
||
| ## Server Requirements | ||
|
|
||
| PHP version 8.1 or higher is required, with the following extensions installed: | ||
| We welcome bug reports, documentation updates, and pull requests from the community. Before contributing: | ||
|
|
||
| - [intl](http://php.net/manual/en/intl.requirements.php) | ||
| - [mbstring](http://php.net/manual/en/mbstring.installation.php) | ||
| 1. Review the [contributing guide](contributing/README.md). | ||
| 2. Search existing issues to avoid duplicates. | ||
| 3. Use GitHub Issues for confirmed bugs and approved enhancements; use the forum for support or feature ideas. | ||
|
|
||
| > [!WARNING] | ||
| > - The end of life date for PHP 7.4 was November 28, 2022. | ||
| > - The end of life date for PHP 8.0 was November 26, 2023. | ||
| > - If you are still using PHP 7.4 or 8.0, you should upgrade immediately. | ||
| > - The end of life date for PHP 8.1 will be December 31, 2025. | ||
| PRs should include tests when applicable and follow the project's coding standards (`composer cs` / `composer cs-fix`). | ||
|
|
||
| Additionally, make sure that the following extensions are enabled in your PHP: | ||
| ## Security | ||
|
|
||
| - json (enabled by default - don't turn it off) | ||
| - [mysqlnd](http://php.net/manual/en/mysqlnd.install.php) if you plan to use MySQL | ||
| - [libcurl](http://php.net/manual/en/curl.requirements.php) if you plan to use the HTTP\CURLRequest library | ||
| Report security issues via the [responsible disclosure process](SECURITY.md). Please do not open public GitHub issues for vulnerabilities. | ||
|
|
||
| ## Running CodeIgniter Tests | ||
| ## License | ||
|
|
||
| Information on running the CodeIgniter test suite can be found in the [README.md](tests/README.md) file in the tests directory. | ||
| CodeIgniter 4 is open-source software released under the [MIT License](LICENSE). | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do you remove these badges?