A PHP framework for web artisans.

Overview

Build Status Total Downloads Latest Stable Version License

About Laravel

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:

Laravel is accessible, powerful, and provides tools required for large, robust applications.

Learning Laravel

Laravel has the most extensive and thorough documentation and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.

If you don't feel like reading, Laracasts can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.

Laravel Sponsors

We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel Patreon page.

Premium Partners

Contributing

Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the Laravel documentation.

Code of Conduct

In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.

Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [email protected]. All security vulnerabilities will be promptly addressed.

License

The Laravel framework is open-sourced software licensed under the MIT license.

Comments
  • [8.x] Use Pest as the default testing framework

    [8.x] Use Pest as the default testing framework

    This PR proposes to use Pest as the default testing framework in Laravel.

    Advantages

    Simple

    Pest adheres to Laravel's core values by design. Its main focus is on simplicity:

    Powerful

    Pest provides handy shortcuts to perform common actions in your tests:

    Backward compatible

    First of all, PHPUnit would still be part of Laravel, as internally, Pest works on top of it. This should reassure most people with years of PHPUnit experience:

    • Pest can run existing PHPUnit test suites natively, no need to rewrite them
    • Pest can be a progressive buy-in, just write your new tests with its syntax
    • You can still run PHPUnit if you don't want to try Pest

    Code example

    The syntax should be familiar if you’ve used other testing tools such as Mocha or Jest. Here’s a quick example of what you can expect:

    <?php
    
    beforeEach(fn () => factory(App\User::class)->create());
    
    it('has a home page', function () {
        $this->get('/')->assertOk();
    });
    

    With its clean syntax, Pest have proven to help bring a few complete beginners to the testing world. Abstracting away most of PHPUnit's boilerplate code makes it easier for them to learn testing. This in itself should be a big benefit to the community.

    Community

    Pest already has dedicated team members working actively on multiple projects, including:

    opened by nunomaduro 110
  • [6.0] Add PHPUnit bootstrap file to allow execution of console commands before a test run

    [6.0] Add PHPUnit bootstrap file to allow execution of console commands before a test run

    This PR introduces a PHPUnit ~~watcher~~ bootstrap file that caches the config before the test suite runs for the first time, which in my benchmarks reduces the boot time of the Kernel during a test run by ~50% without any additional work by the developer.

    This will only really have an impact on a larger test suite, but personally I think it is a worthwhile thing to consider.

    The benchmark test suite ended up with the following durations:

    • Without caching: 9.15s
    • With caching: 4.2s

    Caching the config before a test run is good for a couple of reasons:

    1. It's faster.
    2. It is closer reflects what you use in production.

    If, for example, you cache your routes in production but try deploy a sneaky closure route, your app is gonna blow up when you go to cache the routes during production. Having this in place will help you catch that kind of thing during testing, either locally or during CI. (you could catch this in CI if you are already calling this command before running the tests).

    The PHPUnit ~~listener~~ bootstrap file will cache the config for the test environment before a test is run. Because it is in "User land" it is 100% opt-in. If you don't want it, don't use it. One handy thing about running the cache command in a ~~PHPUnit listener~~ bootstrap file (as opposed to say in a composer script) is that it will already have the environment variables from the phpunit.xml file loaded, so we don't need to read those ourselves.

    Notes

    • As this doesn't require any changes to the framework, it is totally possible to just package up, which I'm more than happy to do.

    • The watcher could be kept in core with just the phpunit.xml changes made here.

    • it is possible we could see similar results by caching routes and events, but I haven’t tested this yet. I plan to extend the benchmark repo I setup to also have some feature (http) tests so we can see what kind of impact that might have on a test suite as well.

    This PR is a simpler approach to my first run at this: https://github.com/laravel/framework/pull/28998

    opened by timacdonald 66
  • [6.x] Implement integration test and in-memory DB

    [6.x] Implement integration test and in-memory DB

    Hey everyone. With this PR I want to propose a new dedicated Integration test directory and in-memory DB defaults to the default Laravel test suite. As someone who's worked quite a bit with different test suites over the past years I think I can say for myself I have quite some experience in this area and wanted to share some small things through this PR.

    In-memory DB

    The first thing I want to change with this PR is to provide new defaults for the database that's being used when running the test suite of the app. This is probably the very first thing I change for every single app I start working on. All of my tests run in memory against a sqlite database which is pretty fast I must say.

    While it is true that the current default Laravel test suite doesn't requires a database to be set up, it is from my understanding that a lot of people do add these new defaults as soon as they need to start testing against a database. It's also true that an sqlite can't mimic a MySQL or Postgres database which is probably used in production but the speed of an in-memory database makes it much more suited for running tests. Therefor, I believe these are good defaults to have in the skeleton.

    Integration Directory

    From what I often read on issues and on Twitter I still see that there's a lot of confusion about what a Unit test is and what an Integration test is. A unit test is something you test in isolation, without booting the entire app. You, for example, test a single object or function without any outside dependencies and maybe mock some of those dependencies. These tests usually run really fast.

    Integration tests, however, are tests which test the behavior of different components together. They aren't full cycle tests like End-to-End tests or Feature tests but they do require some additional setup (like a database for example). These tests tend to run a bit slower.

    In the current skeleton setup you only have two directories: a Unit test directory and a Feature test directory. I think there's room for an Integration directory which actually copies the behavior of the current Unit test directory. Because you see, the current default Unit ExampleTest extends from the default TestCase. This isn't wanted for unit tests because it boots up the entire framework and thus slows down these tests which should actually run much faster (because they should be isolated).

    What I changed is that I've added a dedicated Integration test directory which keeps the current behavior of extending from the Laravel TestCase class and can be used to test different components in your app which require the framework to be booted. The old Unit ExampleTest is updated to only extend the default PHPUnit Testcase so the framework isn't booted and you get the speed boost for these types of test. It's also ok that you don't have all of the Laravel test methods for the Unit tests because most of these methods are meant for Integration tests and provide no value in Unit tests.

    I also wanted to make a clear different between what a Unit test and what an Integration test is inside the example tests. For the Unit tests I'm testing if the User model accepts a name attribute and that it can be fetched properly (most people also don't realize you can perfectly Unit test Eloquent models as long as you don't do DB operations). For the Integration test I've added an example which actually makes use of the newly in-memory database defaults and I seed three users and fetch them with the User model.

    Conclusion

    What I'm mainly trying to achieve with these changes is to educate people better about testing in general and what the different types of tests are. And I'm hoping this saves a lot of people some time when they start on a new Laravel app (even though the changes are minimal).

    I'm sorry for writing such a large description. I'm usually against these myself hehe. But I wanted to be thorough enough to explain the reasoning behind it 🙂

    Let me know what you think.

    Update: Taking from the feedback here I've made changes to this PR. More info here: https://github.com/laravel/laravel/pull/5169#issuecomment-562202777

    opened by driesvints 65
  • Added Output Buffering

    Added Output Buffering

    Hi,

    So currently, if I have something like this:

    Route::get('/', function()
    {
        echo 'First';
    
        return Redirect::to('second');
    });
    
    Route::get('second', function()
    {
        return 'Second';
    });
    

    The redirect never happens and I just get an empty response. That's because Laravel isn't utilising output buffering. I have added output buffering, which means you can echo anything, set session values or whatever then return an object that's an instance of Laravel\Redirect, and the redirect will happen.

    Signed-off-by: Ben Corlett [email protected]

    opened by bencorlett 37
  • [Proposal] More detailed logging

    [Proposal] More detailed logging

    When looking through errors it is not very clear where an error occured. For example 404 errors: from exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php:140 you don't know on what path that happend (and beginners don't even get that this is just a 404). Error 404 on GET http://mydomain.com/my-route: exception 'Symfony\... would make much more sense imho..

    (Follow-up on https://github.com/laravel/laravel/pull/2764 for 4.3 branch)

    opened by barryvdh 29
  • Allow for auto-filling form fields with previous input data.

    Allow for auto-filling form fields with previous input data.

    By simply setting Form::$remember to true, this makes forms automatically be re-filled with the previously entered data - this way this does not have to be done by hand for every field (very tire-some in large forms).

    Some things to note:

    • I realize this adds state to the Form helper class. Is that bad? I don't think so (at least in this case), but...
    • ...maybe there is a more Laravel-ish way for enabling this feature instead of using Form::$remember. I could imagine an extra parameter to Form::open(), but I'm very much looking for suggestions.
    • I haven't yet tested this with select boxes, but don't want to before somebody tells me about the chances of getting this pull request merged.
    • Changing the default $value parameter is necessary so that password fields will not be re-populated.
    • Input::old() has to be repopulated manually, e.g. by redirecting with with_input().
    opened by franzliedke 29
  • [7.x] Add HandleCors middleware

    [7.x] Add HandleCors middleware

    Based on a discussion with Taylor, I've added a HandleCors middleware similar to TrustProxies. This is using https://github.com/fruitcake/laravel-cors (formerly barryvdh/laravel-cors), which is updated with a few breaking changes to v1 (still in dev, awaiting possible feedback for this integration).

    This would make it easy to implement CORS handling in Laravel, based on path matching. An alternative approach would be route middleware, but the biggest issue is that it wouldn't match 404-routes, which would in turn lead to difficult debugging issues.

    An approach could be to add a fallback route for the API middleware though, if you prefer route middleware, instead of the paths option.

    opened by barryvdh 28
  • firstOrNew returns unexpected results when using non mass-assignable fields

    firstOrNew returns unexpected results when using non mass-assignable fields

    When running Model::firstOrNew() with a non mass-assignable field (id), it always returns the very first table row, regardless if the row exists or not.

    Seems to have been introduced with this commit: https://github.com/laravel/framework/commit/df2761f0f3e24e884a9db0271044cff41238b564

    opened by tjmckenzie 26
  • 'AJAXful' routing

    'AJAXful' routing

    I have made this change in just about every project I've built using Laravel, so I thought I would share it. If it's bad or wrong or not useful, that's fine, but I thought I would put it out there.

    This "AJAXful" routing works pretty much like the RESTful routing; it prepends "ajax_" to your controller actions when the request is an AJAX one.

    Here's a RESTful and AJAXful controller example:

    
    <?php
    
    class MyController extends Base_Controller {
        public $restful = true;
        public $ajaxful = true;
    
        public function get_index()
        {
            return View::make('my.nifty_view');
        }
    
        public function ajax_get_index()
        {
            return json_encode(array('my_nifty_content' => 'Hooray, AJAX'));
        }
    }
    
    

    Likewise, for non-RESTful controllers:

    
    <?php
    
    class MyController extends Base_Controller {
        public $restful = false;
        public $ajaxful = true;
    
        public function action_index()
        {
            return View::make('my.nifty_view');
        }
    
        public function ajax_action_index()
        {
            return json_encode(array('my_nifty_content' => 'Hooray, AJAX'));
        }
    }
    
    

    Pretty straightforward, but it's been helpful for me.

    enhancement 
    opened by joecwallace 25
  • Multiple handles for bundles

    Multiple handles for bundles

    Hi Taylor,

    I made a change to the bundle class, which allows one to set multiple handles for a bundle. It's a simple change, that won't add a lot of extra overhead, but makes the routing of bundles a bit more flexible.

    A practical example would be when you have two separate blogs on your website (for example in different languages). They would both use the same blog bundle, but serve up different content based on the URI. With this addition you don't have to include a reference to 'blog' anymore like /blog/myfirstblog and /blog/mysecondblog. Instead you can simply configure multiple handles and use /myfirstblog and /mysecondblog directly. Looks a bit cleaner, I think.

    Hope you like it :)

    opened by mileswebdesign 25
  • [6.x] Add the AWS_SESSION_TOKEN variable for the S3 config

    [6.x] Add the AWS_SESSION_TOKEN variable for the S3 config

    In some cases, the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY variables are not enough to authenticate to the AWS API. The AWS_SESSION_TOKEN must be provided as well.

    The AWS_SESSION_TOKEN is part of the "Temporary Security Credentials" authentication mechanism. See the AWS Documentation.

    One of those cases is when Laravel runs on AWS Lambda. In that case the AWS_SESSION_TOKEN variable is populated (source).

    With the default Laravel installation, when listing files in the s3 drive, I get:

    Aws\S3\Exception\S3Exception Error executing "ListObjects" on "https://redacted.s3.amazonaws.com/?prefix=&delimiter=%2F&encoding-type=url"; AWS HTTP error: Client error: GET https://redacted.s3.amazonaws.com/?prefix=&delimiter=%2F&encoding-type=url resulted in a 403 Forbidden response: <?xml version="1.0" encoding="UTF-8"?> <Error><Code>InvalidAccessKeyId</Code><Message>The AWS Access Key Id you provided does not exist in our records.</Message><AWSAccessKeyId>redacted</AWSAccessKeyId><RequestId>redacted</RequestId><HostId>redacted</HostId></Error>

    By adding the token line to the configuration, the API call succeeds and my application works as expected.

    I expect that adding the line will not cause any regression in cases where the AWS_SESSION_TOKEN is not define: the token option will remain empty.

    opened by mnapoli 24
  • [10.x] Adds PHPUnit 10 support

    [10.x] Adds PHPUnit 10 support

    This pull request adds PHPUnit 10 support to Laravel. Note that, before any release here on the skeleton, the following tasks need to be performed first:

    1. [ ] Merge and release: https://github.com/laravel/framework/pull/45416.
    2. [ ] Ensure Collision ^7.0 is released with support for Parallel Testing ( it may take a while ).
    3. [ ] Adjust the composer.json with the latest version of laravel/framework, and release this pull request.
    opened by nunomaduro 0
  • [9.x] Add environment variables for new AblyBroadcaster

    [9.x] Add environment variables for new AblyBroadcaster

    Note: this PR is one of four parallel pull requests to add first class support for Ably to Laravel. Please find the other PRs here:

    • laravel/docs#8120
    • laravel/framework#43685
    • laravel/echo#351

    Background: the current Ably broadcaster uses the Pusher JavaScript SDK and the documentation instructs users to use Ably with the Pusher compatibility mode enabled. We’ve received a lot of feedback that various features of the Ably Laravel integration don’t work as expected, often caused by the fact that there’s a dependency on the Pusher JavaScript SDK which we have no control over. This collection of PRs adds a new broadcaster which uses the ably-js SDK which means that we can ensure that the Ably broadcaster will remain stable. We are more than happy to take feedback and answer any questions about the work presented here :)

    Adds example environment variables to .env.example for the new AblyBroadcaster and references them in broadcasting.php.

    opened by owenpearson 2
Releases(v9.4.1)
  • v9.4.1(Dec 20, 2022)

  • v9.4.0(Dec 15, 2022)

    Added

    • Vite 4 support by @timacdonald in https://github.com/laravel/laravel/pull/6043

    Changed

    • Add ulid and ascii validation message by @nshiro in https://github.com/laravel/laravel/pull/6046
    Source code(tar.gz)
    Source code(zip)
  • v9.3.12(Nov 22, 2022)

  • v9.3.11(Nov 15, 2022)

    Changed

    • Adds lowercase validation rule translation by @timacdonald in https://github.com/laravel/laravel/pull/6028
    • Adds uppercase validation rule translation by @michaelnabil230 in https://github.com/laravel/laravel/pull/6029
    Source code(tar.gz)
    Source code(zip)
  • v9.3.10(Nov 1, 2022)

    Changed

    • Changing .env to make Pusher work without editing the commented out part in the bootstrap.js by @cveldman in https://github.com/laravel/laravel/pull/6021
    Source code(tar.gz)
    Source code(zip)
  • v9.3.9(Oct 25, 2022)

    Changed

    • Update welcome page colours by @timacdonald in https://github.com/laravel/laravel/pull/6002
    • Ignore .env.production by @yasapurnama in https://github.com/laravel/laravel/pull/6004
    • Upgrade axios to v1.x by @ankurk91 in https://github.com/laravel/laravel/pull/6008
    • Shorten pusher host config by @buihanh2304 in https://github.com/laravel/laravel/pull/6009
    Source code(tar.gz)
    Source code(zip)
  • v9.3.8(Sep 20, 2022)

  • v9.3.7(Sep 6, 2022)

  • v9.3.6(Aug 30, 2022)

  • v9.3.5(Aug 23, 2022)

    Changed

    • max_digits and min_digits validation translations by @danharrin in https://github.com/laravel/laravel/pull/5975
    • Use short closure by @taylorotwell in https://github.com/laravel/laravel/commit/7b17f5f32623c2ee75f2bff57a42bb8f180ac779
    • Use except by @taylorotwell in https://github.com/laravel/laravel/commit/e2e25f607a894427d6545f611ad3c8d94d022e9d
    Source code(tar.gz)
    Source code(zip)
  • v9.3.4(Aug 16, 2022)

  • v9.3.3(Aug 9, 2022)

  • v9.3.2(Aug 2, 2022)

    Changed

    • Update Sanctum by @suyar in https://github.com/laravel/laravel/pull/5957
    • Allow Pest plugin in Composer by @driesvints in https://github.com/laravel/laravel/pull/5959
    Source code(tar.gz)
    Source code(zip)
  • v9.3.1(Jul 26, 2022)

    Changed

    • Update font delivery by @abenerd in https://github.com/laravel/laravel/pull/5952
    • Don't need to ignore vite config file by @GrahamCampbell in https://github.com/laravel/laravel/pull/5953
    Source code(tar.gz)
    Source code(zip)
  • v9.3.0(Jul 19, 2022)

    Added

    • Uses laravel/pint for styling by @nunomaduro in https://github.com/laravel/laravel/pull/5945

    Changed

    • Bump axios version by @ankurk91 in https://github.com/laravel/laravel/pull/5946
    • Vite 3 support by @timacdonald in https://github.com/laravel/laravel/pull/5944
    Source code(tar.gz)
    Source code(zip)
  • v9.2.1(Jul 13, 2022)

    Changed

    • Add auth.json to skeleton by @driesvints in https://github.com/laravel/laravel/pull/5924
    • Update bootstrap.js by @irsyadadl in https://github.com/laravel/laravel/pull/5929
    • Add default reloading to skeleton by @timacdonald in https://github.com/laravel/laravel/pull/5927
    • Update to the latest version of laravel-vite-plugin by @jessarcher in https://github.com/laravel/laravel/pull/5943
    Source code(tar.gz)
    Source code(zip)
  • v9.2.0(Jun 28, 2022)

    Added

    • Vite by @jessarcher in https://github.com/laravel/laravel/pull/5904
    • Added support for easy development configuration in bootstrap.js by @rennokki in https://github.com/laravel/laravel/pull/5900

    Changed

    • Sorted entries in the en validation translations file by @FaridAghili in https://github.com/laravel/laravel/pull/5899
    Source code(tar.gz)
    Source code(zip)
  • v9.1.10(Jun 7, 2022)

    Changed

    • Add language line by @taylorotwell in https://github.com/laravel/laravel/commit/b084aacc5ad105e39c2b058e9523e73655be8d1f
    • Improve Pusher configuration for easy development by @oanhnn in https://github.com/laravel/laravel/pull/5897
    Source code(tar.gz)
    Source code(zip)
  • v9.1.9(May 31, 2022)

  • v9.1.8(May 10, 2022)

    Changed

    • Add local_domain option to smtp configuration by @bintzandt in https://github.com/laravel/laravel/pull/5877
    • Add specific test user in seeder by @driesvints in https://github.com/laravel/laravel/pull/5879
    Source code(tar.gz)
    Source code(zip)
  • v9.1.7(May 3, 2022)

  • v9.1.6(Apr 27, 2022)

    Changed

    • Move password lines into main translation file by @taylorotwell in https://github.com/laravel/laravel/commit/db0d052ece1c17c506633f4c9f5604b65e1cc3a4
    • Add missing maintenance to config by @ibrunotome in https://github.com/laravel/laravel/pull/5868
    Source code(tar.gz)
    Source code(zip)
  • v9.1.5(Apr 12, 2022)

    Changed

    • Rearrange route methods by @osbre in https://github.com/laravel/laravel/pull/5862
    • Add levels to handler by @taylorotwell in https://github.com/laravel/laravel/commit/a507e1424339633ce423729ec0ac49b99f0e57d7
    Source code(tar.gz)
    Source code(zip)
  • v8.6.12(Apr 12, 2022)

  • v9.1.4(Apr 5, 2022)

    Changed

    • Add encryption configuration by @taylorotwell in https://github.com/laravel/laravel/commit/f7b982ebdf7bd31eda9f05f901bd92ed32446156
    Source code(tar.gz)
    Source code(zip)
  • v9.1.3(Mar 29, 2022)

    Changed

    • Add an example to the class aliases by @nshiro in https://github.com/laravel/laravel/pull/5846
    • Add username in config to use with phpredis + ACL by @neoteknic in https://github.com/laravel/laravel/pull/5851
    • Remove "password" from validation lang by @mnastalski in https://github.com/laravel/laravel/pull/5856
    • Make authenticate session a route middleware by @taylorotwell in https://github.com/laravel/laravel/pull/5842
    Source code(tar.gz)
    Source code(zip)
  • v9.1.2(Mar 15, 2022)

  • v9.1.1(Mar 8, 2022)

    Changed

    • Add option to configure Mailgun transporter scheme by @jnoordsij in https://github.com/laravel/laravel/pull/5831
    • Add throw to filesystems config by @ankurk91 in https://github.com/laravel/laravel/pull/5835

    Fixed

    • Small typo fix in filesystems.php by @tooshay in https://github.com/laravel/laravel/pull/5827
    • Update sendmail default params by @driesvints in https://github.com/laravel/laravel/pull/5836
    Source code(tar.gz)
    Source code(zip)
  • v9.1.0(Feb 22, 2022)

    Changed

    • Remove namespace from Routes by @emargareten in https://github.com/laravel/laravel/pull/5818
    • Update sanctum config file by @suyar in https://github.com/laravel/laravel/pull/5820
    • Replace Laravel CORS package by @driesvints in https://github.com/laravel/laravel/pull/5825
    Source code(tar.gz)
    Source code(zip)
  • v9.0.1(Feb 15, 2022)

    Changed

    • Improve typing on user factory by @axlon in https://github.com/laravel/laravel/pull/5806
    • Align min PHP version with docs by @u01jmg3 in https://github.com/laravel/laravel/pull/5807
    • Remove redundant nulls by @felixdorn in https://github.com/laravel/laravel/pull/5811
    • Remove default commented namespace by @driesvints in https://github.com/laravel/laravel/pull/5816
    • Add underscore to prefix in database cache key by @m4tlch in https://github.com/laravel/laravel/pull/5817

    Fixed

    • Fix lang alphabetical order by @shuvroroy in https://github.com/laravel/laravel/pull/5812
    Source code(tar.gz)
    Source code(zip)
Owner
The Laravel Framework
The Laravel Framework
FlyCubePHP is an MVC Web Framework developed in PHP and repeating the ideology and principles of building WEB applications, embedded in Ruby on Rails.

FlyCubePHP FlyCubePHP is an MVC Web Framework developed in PHP and repeating the ideology and principles of building WEB applications, embedded in Rub

Anton 1 Dec 21, 2021
Framework X – the simple and fast micro framework for building reactive web applications that run anywhere.

Framework X Framework X – the simple and fast micro framework for building reactive web applications that run anywhere. Quickstart Documentation Tests

Christian Lück 620 Jan 7, 2023
💫 Vega is a CLI mode HTTP web framework written in PHP support Swoole, WorkerMan / Vega 是一个用 PHP 编写的 CLI 模式 HTTP 网络框架,支持 Swoole、WorkerMan

Mix Vega 中文 | English Vega is a CLI mode HTTP web framework written in PHP support Swoole, WorkerMan Vega 是一个用 PHP 编写的 CLI 模式 HTTP 网络框架,支持 Swoole、Work

Mix PHP 46 Apr 28, 2022
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.

Slim Framework Slim is a PHP micro-framework that helps you quickly write simple yet powerful web applications and APIs. Installation It's recommended

Slim Framework 11.5k Jan 4, 2023
Low-code Framework for Web Apps in PHP

Agile UI - User Interface framework for Agile Toolkit Agile Toolkit is a Low Code framework written in PHP. Agile UI implement server side rendering e

Agile Toolkit 404 Jan 8, 2023
A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast!

A powerful yet easy-to-use PHP micro-framework designed to help you build dynamic and robust Web applications - fast! Condensed in a single ~65KB file

Bong Cosca 2.6k Dec 30, 2022
Leaf is a PHP framework that helps you create clean, simple but powerful web apps and APIs quickly and easily.

Leaf is a PHP framework that helps you create clean, simple but powerful web apps and APIs quickly and easily. Leaf introduces a cleaner and much simpler structure to the PHP language while maintaining it's flexibility. With a simple structure and a shallow learning curve, it's an excellent way to rapidly build powerful and high performant web apps and APIs.

Leaf Framework 706 Jan 3, 2023
Woski is a fast and simple lightweight PHP Framework for building applications in the realm of the web.

Woski is a simple fast PHP framework for the Realm The Project Installation Clone the repository $ composer create-project clintonnzedimma/woski myApp

Clinton Nzedimma 19 Aug 15, 2022
A magic PHP framework. Build reactive web apps without writing HTML, CSS, or JavaScript! Powered by Tailwind, Alpine, Laravel, & Livewire.

Malzahar A magic PHP framework. Build reactive web apps without writing HTML, CSS, or JavaScript! Powered by Tailwind, Alpine, Laravel, & Livewire. Re

null 26 Nov 17, 2022
Biny is a tiny, high-performance PHP framework for web applications

Biny is high performance. Framework comes default with response time of less than 1ms. Stand-alone QPS easily up to 3000.

Tencent 1.7k Dec 9, 2022
ReikoFramework - The PHP Web Framework for simplicity

Reiko Framework - The PHP Web Framework for simplicity. What is Reiko? Reiko Framework is PHP Web framework for simplicity, if you need built web appl

shutdown57 3 Mar 8, 2022
TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs.

TrailLamp Introduction TrailLamp is a lightweight, easy-to-use Php MVC framework that can be used to build web applications and REST APIs. Installatio

Etorojah Okon 14 Jun 10, 2022
Flare is a PHP full-stack web framework that is light, fast, flexible, and secure.

Flare framework is a PHP full-stack web framework that is simple ,powerful , fast , flexible, and secure with long-term support.

Flare framework 3 Oct 24, 2022
Rori-PHP is custom non production web application framework inspired by Laravel syntax

Rori-PHP is custom non production web application framework inspired by Laravel syntax. A web framework provides a structure and starting point for your application allowing you to focus on creating something amazing.

UnknownRori 5 Jul 28, 2022
Opulence is a PHP web application framework that simplifies the difficult parts of creating and maintaining a secure, scalable website.

Opulence Introduction Opulence is a PHP web application framework that simplifies the difficult parts of creating and maintaining a secure, scalable w

Opulence 733 Sep 8, 2022
CodeIgniter - a PHP full-stack web framework that is light, fast, flexible and secure

CodeIgniter 4 Development What is CodeIgniter? CodeIgniter is a PHP full-stack web framework that is light, fast, flexible and secure. More informatio

CodeIgniter 4 web framework 4.5k Jan 4, 2023
Hamtaro - the new web framework for front-end / back-end development using Php and Javascript.

Hamtaro framework About Technologies Controllers Components Commands Front-end development Getting Started About Hamtaro is the new web framework for

Phil'dy Jocelyn Belcou 3 May 14, 2022
A Small modular PHP framework Build for web applications

MagmaCore__ This project is in active development. So is evolving constantly. As soon project gets to stable point. Due notice will be given Composer

Ricardo Miller 10 Sep 2, 2022
Primera Evaluación asociada a la Asignatura de Framework y Programación Web

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Luis Garcés S. 1 Oct 22, 2021