{"id":21546222,"url":"https://github.com/softon/slano","last_synced_at":"2026-03-19T20:49:42.201Z","repository":{"id":57054962,"uuid":"345766396","full_name":"softon/slano","owner":"softon","description":"A simple PHP MVC Framework using external libraries.","archived":false,"fork":false,"pushed_at":"2021-03-09T09:07:55.000Z","size":257,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-24T09:11:13.416Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Twig","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/softon.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":"2021-03-08T19:10:57.000Z","updated_at":"2022-11-26T02:08:12.000Z","dependencies_parsed_at":"2022-08-24T14:00:15.961Z","dependency_job_id":null,"html_url":"https://github.com/softon/slano","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softon%2Fslano","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softon%2Fslano/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softon%2Fslano/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softon%2Fslano/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softon","download_url":"https://codeload.github.com/softon/slano/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244135904,"owners_count":20403797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-24T06:09:20.081Z","updated_at":"2026-01-04T05:05:38.750Z","avatar_url":"https://github.com/softon.png","language":"Twig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Slano Framework\n\n![Slano Framework](/public/assets/images/slano-logo-small.png)\n\nA simple PHP Framework for quick app development.\n\n## Installation\n1. Install Composer and PHP 5.4+\n2. use `composer create-project softon/slano --prefer-dist` to create a new slano project.\n3. copy the `.env.sample` to `.env` and update the environment variables.\n4. (optional) run the below query which will create a basic authetication related tables.\n5. setup a virtual host and access the website.\n6. Done.\n\n## Libraries used in Slano Framework\nBelow libraries are used for building this framework. Link to the documentation to respective packages are provided.\n\n1. **Twig** (Template Engine): [https://twig.symfony.com](https://twig.symfony.com/)\n2. **Bramus/router** (Routing Library) : [https://github.com/bramus/router](https://github.com/bramus/router)\n3. **Rakit/validation** (Validation Library) : [https://github.com/rakit/validation](https://github.com/rakit/validation)\n4. **Vlucas/phpdotenv** (Reading Environment Variables) : [https://github.com/vlucas/phpdotenv](https://github.com/vlucas/phpdotenv)\n5. **Lodev09/php-models** (Database Models) : [https://github.com/lodev09/php-models](https://github.com/lodev09/php-models)\n6. **Delight-im/auth** (Authentication Library) : [https://github.com/delight-im/PHP-Auth](https://github.com/delight-im/PHP-Auth)\n\n# SQL Database Query for Users (Optional)\n```sql\n\nCREATE TABLE `users` (\n  `id` int(10) UNSIGNED NOT NULL,\n  `email` varchar(249) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `password` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,\n  `username` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,\n  `status` tinyint(2) UNSIGNED NOT NULL DEFAULT '0',\n  `verified` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',\n  `resettable` tinyint(1) UNSIGNED NOT NULL DEFAULT '1',\n  `roles_mask` int(10) UNSIGNED NOT NULL DEFAULT '0',\n  `registered` int(10) UNSIGNED NOT NULL,\n  `last_login` int(10) UNSIGNED DEFAULT NULL,\n  `force_logout` mediumint(7) UNSIGNED NOT NULL DEFAULT '0'\n) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\nCREATE TABLE `users_confirmations` (\n  `id` int(10) UNSIGNED NOT NULL,\n  `user_id` int(10) UNSIGNED NOT NULL,\n  `email` varchar(249) COLLATE utf8mb4_unicode_ci NOT NULL,\n  `selector` varchar(16) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,\n  `token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,\n  `expires` int(10) UNSIGNED NOT NULL\n) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\nCREATE TABLE `users_remembered` (\n  `id` bigint(20) UNSIGNED NOT NULL,\n  `user` int(10) UNSIGNED NOT NULL,\n  `selector` varchar(24) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,\n  `token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,\n  `expires` int(10) UNSIGNED NOT NULL\n) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\nCREATE TABLE `users_resets` (\n  `id` bigint(20) UNSIGNED NOT NULL,\n  `user` int(10) UNSIGNED NOT NULL,\n  `selector` varchar(20) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,\n  `token` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,\n  `expires` int(10) UNSIGNED NOT NULL\n) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\nCREATE TABLE `users_throttling` (\n  `bucket` varchar(44) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL,\n  `tokens` float UNSIGNED NOT NULL,\n  `replenished_at` int(10) UNSIGNED NOT NULL,\n  `expires_at` int(10) UNSIGNED NOT NULL\n) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;\n\n--\n-- Indexes for table `users`\n--\nALTER TABLE `users`\n  ADD PRIMARY KEY (`id`),\n  ADD UNIQUE KEY `email` (`email`);\n\n--\n-- Indexes for table `users_confirmations`\n--\nALTER TABLE `users_confirmations`\n  ADD PRIMARY KEY (`id`),\n  ADD UNIQUE KEY `selector` (`selector`),\n  ADD KEY `email_expires` (`email`,`expires`),\n  ADD KEY `user_id` (`user_id`);\n\n--\n-- Indexes for table `users_remembered`\n--\nALTER TABLE `users_remembered`\n  ADD PRIMARY KEY (`id`),\n  ADD UNIQUE KEY `selector` (`selector`),\n  ADD KEY `user` (`user`);\n\n--\n-- Indexes for table `users_resets`\n--\nALTER TABLE `users_resets`\n  ADD PRIMARY KEY (`id`),\n  ADD UNIQUE KEY `selector` (`selector`),\n  ADD KEY `user_expires` (`user`,`expires`);\n\n--\n-- Indexes for table `users_throttling`\n--\nALTER TABLE `users_throttling`\n  ADD PRIMARY KEY (`bucket`),\n  ADD KEY `expires_at` (`expires_at`);\n\n--\n-- AUTO_INCREMENT for dumped tables\n--\n\n--\n-- AUTO_INCREMENT for table `users`\n--\nALTER TABLE `users`\n  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- AUTO_INCREMENT for table `users_confirmations`\n--\nALTER TABLE `users_confirmations`\n  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- AUTO_INCREMENT for table `users_remembered`\n--\nALTER TABLE `users_remembered`\n  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;\n\n--\n-- AUTO_INCREMENT for table `users_resets`\n--\nALTER TABLE `users_resets`\n  MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsofton%2Fslano","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsofton%2Fslano","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsofton%2Fslano/lists"}