{"id":41637785,"url":"https://github.com/ursuleacv/wallaby","last_synced_at":"2026-01-24T15:01:08.745Z","repository":{"id":57076035,"uuid":"88898189","full_name":"ursuleacv/wallaby","owner":"ursuleacv","description":"A simple lightweight framework for building small apps in PHP","archived":false,"fork":false,"pushed_at":"2020-08-26T13:29:01.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-16T19:32:13.594Z","etag":null,"topics":["framework","micro","mvc","php","simple","wallaby"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ursuleacv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-20T18:32:52.000Z","updated_at":"2020-08-26T13:29:03.000Z","dependencies_parsed_at":"2022-08-24T14:55:48.005Z","dependency_job_id":null,"html_url":"https://github.com/ursuleacv/wallaby","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/ursuleacv/wallaby","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ursuleacv%2Fwallaby","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ursuleacv%2Fwallaby/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ursuleacv%2Fwallaby/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ursuleacv%2Fwallaby/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ursuleacv","download_url":"https://codeload.github.com/ursuleacv/wallaby/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ursuleacv%2Fwallaby/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28730304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T10:24:43.181Z","status":"ssl_error","status_checked_at":"2026-01-24T10:24:36.112Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["framework","micro","mvc","php","simple","wallaby"],"created_at":"2026-01-24T15:01:02.864Z","updated_at":"2026-01-24T15:01:08.695Z","avatar_url":"https://github.com/ursuleacv.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wallaby\nA simple lightweight MVC framework for building small apps in PHP.\n\nBuilt in support for layouts, themes, routing.\n\n# Usage\n\nCreate composer.json file\n\n```json\n{\n    \"require\": {\n        \"php\": \"\u003e=5.6.0\",\n        \"ext-json\": \"*\",\n        \"ext-pdo\": \"*\",\n        \"ursuleacv/wallaby\": \"dev-master\"\n    },\n    \"autoload\": {\n        \"psr-4\": {\n            \"App\\\\\": \"app/\"\n        }\n    }\n}\n```\n\nRun `composer install` \n\nCreate a project with the following structure\n```\napp\n    Controllers\n        BaseController.php\n        HomeController.php\n    Models\n        User.php\nconfig\n    router.php\n    app.php\npublic\n    themes\n        default\n            views\n                home\n                    index.php\n                    login.php\n                layouts\n                    main.php\n        beta\n            views\n    index.php\nserver.php\n```\n\nExample BaseController.php\n```php\n\u003c?php\n\nnamespace App\\Controllers;\n\nuse Wallaby\\Base\\Controller;\n\nclass BaseController extends Controller\n{\n    /**\n     *\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        parent::__construct();\n\n        $this-\u003etheme = 'default';\n        $this-\u003elayout = 'layouts/main';\n    }\n}\n```\n\nExample HomeController.php\n\n```php\n\u003c?php\n\nnamespace App\\Controllers;\n\nclass HomeController extends BaseController\n{\n    /**\n     *\n     *\n     * @return void\n     */\n    public function __construct()\n    {\n        parent::__construct();\n\n        $this-\u003etheme = 'default'; // You can override the theme\n        $this-\u003elayout = 'layouts/main';\n    }\n\n    /**\n     * @return void\n     */\n    public function autoLogin()\n    {\n        //\n    }\n}\n```\n\npublic/index.php\n\n```php\n\u003c?php\ndate_default_timezone_set('UTC');\nrequire __DIR__.'/../vendor/autoload.php';\n\nrequire __DIR__.'/../server.php';\n```\n\nserver.php\n\n```php\n\u003c?php\n\nuse Wallaby\\Router;\n\nerror_reporting(-1);\n\ndefined('ROOT') or define('ROOT', __DIR__);\ndefined('PUBLIC_DIR') or define('PUBLIC_DIR', 'public');\n\n$config = require_once __DIR__ . '/config/app.php';\n\n$debug = isset($config['debug']) ? $config['debug'] : false;\n\ndefined('APP_DEBUG') or define('APP_DEBUG', $debug);\n\n$url = trim($_SERVER['REQUEST_URI'], '/');\n\n$configRouter = require_once ROOT . '/config/router.php';\n\n$router = new Router($configRouter);\n\n$router-\u003estart($url);\n```\n\nconfig/app.php\n\n```php\n\u003c?php\n    return [\n        'appName' =\u003e 'My App Name',\n        'appBaseUrl' =\u003e 'http://localhost', // no trailing slash\n        'theme' =\u003e 'default',\n        'version' =\u003e 'v1.0.0',\n    ];\n```\n\nconfig/router.php\n\nthis will automatically match all routes with the following format\n\ncontroller/action/param1/param2\n\ncontroller/action/?param1=value1\u0026param2=value2\n\nEx: \n\nhttp:localhost/site/register\n\nhttp:localhost/site/contact\n\nhttp:localhost/product/edit/123\n\n\n```php\n\u003c?php\n    return [\n        'baseAction' =\u003e 'index',\n        'baseController' =\u003e 'home',\n        'errorHandler' =\u003e 'home/error',\n        'routes' =\u003e '^(?\u003ccontroller\u003e[a-z-A-Z]+)?/?(?\u003caction\u003e[a-z-A-Z]+)?/?(?\u003cparameter\u003e.*[a-z0-9/-])?/?(?\u003cquery\u003e\\?.*)?$',\n    ];\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fursuleacv%2Fwallaby","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fursuleacv%2Fwallaby","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fursuleacv%2Fwallaby/lists"}