Giter Club home page Giter Club logo

phpdotnet's Introduction

PhpDotNet

An open-source PHP micro-framework inspired by Microsoft's ASP.NET Core framework. PhpDotNet is an object-oriented library which consists of modular components. Similar to ASP. NET Core, this infrastructure requires minimal overhead and allows you to retain flexibility.

PhpDotNet is a micro-framework, meaning that it requires little-to-no configuration, is designed to integrate with other libraries conforming to PSR standards, and allows you to design/develop your solution with as few constraints as possible.

Get Started

Using PhpDotNet is as simple as setting-up your application's entrypoint script. By convention, this is index.php. See the following code example showing a basic index.php setup:

<?php

declare(strict_types = 1);

use ... // Ommited for brevity.

require_once __DIR__ . '/../vendor/autoload.php';

$builder = WebApplication::createBuilder();

// Add services to the container.
$builder->addService(IExampleService::class, ExampleService::class);

$app = $builder->build();

// Configure HTTP pipeline.
Authenticator::initialize();

$app->run();

The preceding example demonstrates an instance of WebApplicationBuilder being instantiated with default configurations. Services are then added to the dependency injection container. Afterwards, the WebApplicationBuilder is built into a WebApplication, where we configure the HTTP pipeline and finally run the app. In this example, "Authenticator" is a custom middleware that authenticates each request and is not a PhpDotNet specific class. However, it demonstrates the ability for you to create and configure your own application's middleware while working seamlessly with PhpDotNet.

The preceding example also carries the following assumption about the project's architecture, which is not required but may help better understand the example:

  • /app
    • /public
      • index.php
    • /vendor
      • /phpdotnet

How to Engage, Contribute, and Give Feedback

PhpDotNet is a valuable library which brings a sense of familiarity and comfort to PHP development for .NET developers, The best ways to contribute and help PhpDotNet grow are to try things out, submit issues, join design/development conversations, and make pull-requests.

phpdotnet's People

Contributors

justinianerdmier avatar

Stargazers

Roman avatar

Watchers

 avatar

phpdotnet's Issues

PhpDotNet Roadmap for Release 1.0.0

Roadmap

This issue represents the list of goals and objectives being prioritized for developing and releasing the production-ready release v1.0.0 of PhpDotNet. It does not include all the features and bugfixes which will be tackled.

Note that this is an aspirational list of what we hope to get to. Many of these items will require thorough investigation and design, which can result in changes to our plans. We will end up cutting some things and making changes as we go but will try to keep this issue up to date to reflect on our progress and learning.

The roadmap consists of two major areas below.

Routing

  • Fully implement route configuration via attributes.
  • Design and implement route templating.
    • Implement REGEX based route resolution for improved performance.
  • Implement route parameters and model binding.

View Templating

  • Fully implement a strongly typed view templating engine. Possibly Twig.
  • Fully implement strongly type view creation/returns from controller action methods.
  • Design and implement view discovery patterns.
    • Ties into route templating.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.