{"id":15525188,"url":"https://github.com/antonioribeiro/skel","last_synced_at":"2025-04-23T08:45:00.048Z","repository":{"id":13459369,"uuid":"16149053","full_name":"antonioribeiro/skel","owner":"antonioribeiro","description":"A PHP Package Creator \u0026 Skeleton","archived":false,"fork":false,"pushed_at":"2015-03-15T13:06:16.000Z","size":364,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T23:11:33.086Z","etag":null,"topics":["bash","composer","package","php","shell","skeleton"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/antonioribeiro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2014-01-22T18:59:48.000Z","updated_at":"2020-11-24T05:58:34.000Z","dependencies_parsed_at":"2022-08-29T10:31:01.774Z","dependency_job_id":null,"html_url":"https://github.com/antonioribeiro/skel","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonioribeiro%2Fskel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonioribeiro%2Fskel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonioribeiro%2Fskel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonioribeiro%2Fskel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antonioribeiro","download_url":"https://codeload.github.com/antonioribeiro/skel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250401072,"owners_count":21424501,"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":["bash","composer","package","php","shell","skeleton"],"created_at":"2024-10-02T10:55:30.032Z","updated_at":"2025-04-23T08:45:00.028Z","avatar_url":"https://github.com/antonioribeiro.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skel\r\n### A PHP Package Creator \u0026 Skeletons\r\n\r\nSkel is a Bash script to create [Composer](https://getcomposer.org/doc/01-basic-usage.md) PHP packages based on [skeletons](https://github.com/antonioribeiro/skel#skeletons). \r\n\r\n### Why?\r\n\r\nLaravel 4 Workbench is great, but, in my first steps with it I found easier to develop a package right from my vendor folder, where the package will really be after I install it using Composer. Also because my new packages needed some more preparing than just setting up files in folders, I needed more information in my composer.json, my package stub had more files than the ones Laravel provided, like readme.md, changelog.md and travis.yml, I also had more info in composer.json, so there was a lot of boilerplate to be added before I go my package really ready to go, things I could avoid using my own skeleton (stub).\r\n   \r\nThis script does all this for you, allowing you to use a skeleton repository to create the package and even upload a first draft of it to Github (or any other VCS service). \r\n \r\n### How it Works\r\n\r\nSkel is very simple, when running it will \r\n\r\n1. Ask for some information (destination, vendor, package, vcs username, skeleton to be used...). \r\n2. Clone a skeleton repository of your choice. \r\n3. Replace everything related to the package with the information provided.\r\n4. Push the new package to your VCS (Github, Bitbucket...).\r\n5. Give you instructions on how to add the new package to your application.\r\n\r\n### You Don't Need to Add Your Package to Packagist\r\n\r\nSkel will automatically push your new package to a VCS repository (Github, Bitbucket...), but you don't need to add it publicly to Packagist. You can require your new package on your composer.json:  \r\n\r\n``` json\r\n\"require\": {\r\n    \"yourVendorName/yourPackageName\": \"dev-master\",\r\n},\r\n```\r\n\r\nAnd [reference your VCS in the repositories](https://getcomposer.org/doc/05-repositories.md#loading-a-package-from-a-vcs-repository) object:  \r\n\r\n``` json\r\n\"repositories\": [\r\n    {\r\n        \"type\": \"vcs\",\r\n        \"url\":  \"https://github.com/yourUsername/yourPackageName.git\"\r\n    },\r\n],\r\n```\r\n\r\nThen you just have to tell [Composer](https://getcomposer.org/doc/01-basic-usage.md) to install by cloning it, allowing you to develop your package right from your app vendor folder:\r\n\r\nYou can read more about this \r\n``` bash\r\ncomposer install --prefer-source\r\n```\r\n\r\nAnd it's done! \r\n\r\n#### Running Skel remotely from Github\r\n\r\n``` bash\r\nbash \u003c(curl -s https://raw.githubusercontent.com/antonioribeiro/skel/v0.1.0/skel.sh)\r\n```\r\n\r\n#### Installing the script on your system\r\n\r\n``` bash\r\nDESTINATION=/usr/local/bin/skel\r\nsudo wget https://raw.githubusercontent.com/antonioribeiro/skel/v0.1.0/skel.sh -v -O $DESTINATION\r\nsudo chmod +x $DESTINATION \r\n```\r\n\r\nThen you just have to run it\r\n\r\n``` bash\r\nskel \r\n```\r\n\r\n#### Skeletons\r\n\r\nDuring creation of a package the script may ask for a skeleton to install, the currently available are:\r\n\r\n* [League](https://github.com/antonioribeiro/skel/tree/league)\r\n* [Laravel 5](https://github.com/antonioribeiro/skel/tree/laravel5)\r\n* [Laravel 4](https://github.com/antonioribeiro/skel/tree/laravel4)\r\n* Your own skeleton\r\n\r\n#### [The League of Extraordinary Packages](http://thephpleague.com/)\r\n\r\nAll skeletons on this repository are using [ThePhpLeague/Skeleton](https://github.com/thephpleague/skeleton) a base, and every commit to League's repository will be merged to Skel, but there are some differences:\r\n  \r\n* Replacement strings (:package_name, :vendor_name, etc.) were unified\r\n* Framework specific files, for instance the Service Provider, included in Laravel 4 and 5 skeletons.\r\n\r\n#### Going Faster\r\n\r\nYou can export some variables so you don't have to type too much while creating your packages, you just have to add those lines to your .bashrc and fill them properly: \r\n \r\n``` bash\r\nexport VENDOR_NAME=pragmarx\r\nexport PACKAGE_AUTHOR_NAME=Antonio Carlos Ribeiro\r\nexport PACKAGE_AUTHOR_EMAIL=acr@antoniocarlosribeiro.com\r\nexport PACKAGE_AUTHOR_WEBSITE=https://antoniocarlosribeiro.com\r\nexport PACKAGE_AUTHOR_USERNAME=antonioribeiro\r\nexport PACKAGE_DESCRIPTION=PragmaRX Package for...\r\nexport SKELETON_VENDOR_NAME=pragmarx\r\nexport SKELETON_VENDOR_NAME_CAPITAL=PragmaRX\r\nexport SKELETON_PACKAGE_NAME=skeleton\r\nexport SKELETON_VENDOR_NAME_CAPITAL=Skeleton\r\nexport SKELETON_PACKAGE_REPOSITORY=https://github.com/antonioribeiro/skel.git\r\nexport SKELETON_VCS_USER=antonioribeiro\r\nexport SKELETON_VCS_SERVICE=github.com\r\nexport SKELETON_PACKAGE_BRANCH=league\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonioribeiro%2Fskel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantonioribeiro%2Fskel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonioribeiro%2Fskel/lists"}