{"id":15590247,"url":"https://github.com/coderberry/php-ember-presentation-code","last_synced_at":"2025-10-07T08:18:20.504Z","repository":{"id":18715492,"uuid":"21926338","full_name":"coderberry/php-ember-presentation-code","owner":"coderberry","description":"[Code] PHP \u0026 Ember, a Bronies Paradise","archived":false,"fork":false,"pushed_at":"2014-07-17T22:28:46.000Z","size":180,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-01T19:53:03.436Z","etag":null,"topics":[],"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/coderberry.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":"2014-07-17T02:55:09.000Z","updated_at":"2014-07-17T02:55:19.000Z","dependencies_parsed_at":"2022-09-25T01:52:46.359Z","dependency_job_id":null,"html_url":"https://github.com/coderberry/php-ember-presentation-code","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/coderberry/php-ember-presentation-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderberry%2Fphp-ember-presentation-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderberry%2Fphp-ember-presentation-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderberry%2Fphp-ember-presentation-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderberry%2Fphp-ember-presentation-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coderberry","download_url":"https://codeload.github.com/coderberry/php-ember-presentation-code/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderberry%2Fphp-ember-presentation-code/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278740878,"owners_count":26037488,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-02T23:20:53.313Z","updated_at":"2025-10-07T08:18:20.480Z","avatar_url":"https://github.com/coderberry.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Create the Laravel PHP project\n\n```bash\n$ composer create-project laravel/laravel bronies-api --prefer-dist\n...\n$ cd bronies-api\n```\n\n### Configure the database\n\nUpdate `database.php` to use `sqlite3`\n\n```php\n'default' =\u003e 'sqlite',\n```\n\n### Create the bronies table and model\n\n```bash\n$ php artisan migrate:make create_bronies_table\nCreated Migration: 2014_07_17_012154_create_bronies_table\nGenerating optimized class loader\nCompiling common classes\nCompiling views\n```\n\nModify the generated migration as follows:\n\n    \u003c?php\n\n    use Illuminate\\Database\\Schema\\Blueprint;\n    use Illuminate\\Database\\Migrations\\Migration;\n\n    class CreateBroniesTable extends Migration {\n\n    \t/**\n    \t * Run the migrations.\n    \t *\n    \t * @return void\n    \t */\n    \tpublic function up()\n    \t{\n    \t\tSchema::create('bronies', function(Blueprint $table)\n    \t\t{\n    \t\t\t$table-\u003eincrements('id');\n\n    \t\t\t$table-\u003estring('name', 255);\n    \t\t\t$table-\u003estring('email', 255);\n    \t\t\t$table-\u003einteger('pony_name');\n\n    \t\t\t$table-\u003etimestamps();\n    \t\t});\n    \t}\n\n    \t/**\n    \t * Reverse the migrations.\n    \t *\n    \t * @return void\n    \t */\n    \tpublic function down()\n    \t{\n    \t\tSchema::drop('bronies');\n    \t}\n\n    }\n\n\nThen run the migration:\n\n```bash\n$ php artisan migrate\n**************************************\n*     Application In Production!     *\n**************************************\n\nDo you really wish to run this command? y\nMigration table created successfully.\nMigrated: 2014_07_17_004427_create_bronies_table\n```\n\n### Create model at `app/models/Bronie.php`:\n\n```php\n\u003c?php\n\nclass Bronie extends Eloquent {\n\n}\n```\n\n### Create controller\n\n```bash\n$ php artisan controller:make BronieController\n```\n\n### Add Bronies to routes\n\n```php\n...\nRoute::resource('bronies', 'BronieController');\n```\n\nYou can verify the routes with the artisan command `routes`:\n\n    $ php artisan routes\n    +--------+---------------------------------+-----------------+--------------------------+----------------+---------------+\n    | Domain | URI                             | Name            | Action                   | Before Filters | After Filters |\n    +--------+---------------------------------+-----------------+--------------------------+----------------+---------------+\n    |        | GET|HEAD bronies                | bronies.index   | BronieController@index   |                |               |\n    |        | GET|HEAD bronies/create         | bronies.create  | BronieController@create  |                |               |\n    |        | POST bronies                    | bronies.store   | BronieController@store   |                |               |\n    |        | GET|HEAD bronies/{bronies}      | bronies.show    | BronieController@show    |                |               |\n    |        | GET|HEAD bronies/{bronies}/edit | bronies.edit    | BronieController@edit    |                |               |\n    |        | PUT bronies/{bronies}           | bronies.update  | BronieController@update  |                |               |\n    |        | PATCH bronies/{bronies}         |                 | BronieController@update  |                |               |\n    |        | DELETE bronies/{bronies}        | bronies.destroy | BronieController@destroy |                |               |\n    +--------+---------------------------------+-----------------+--------------------------+----------------+---------------+\n\n### Seed the database\n\nYou can seed the database by adding the following code into the `run` function of `DatabaseSeeder.php`:\n\n```php\nEloquent::unguard();\n\nDB::table('bronies')-\u003edelete();\n\nBronie::create(array( 'name'      =\u003e 'Yehuda Katz',\n                      'email'     =\u003e 'yehuda@emberjs.com',\n                      'pony_name' =\u003e 'Apple Star' ));\nBronie::create(array( 'name'      =\u003e 'Tom Dale',\n                      'email'     =\u003e 'tom@emberjs.com',\n                      'pony_name' =\u003e 'Blade Thunder' ));\nBronie::create(array( 'name'      =\u003e 'Peter Wagenet',\n                      'email'     =\u003e 'peter@emberjs.com',\n                      'pony_name' =\u003e 'Strong Gunner' ));\nBronie::create(array( 'name'      =\u003e 'Trek Glowacki',\n                      'email'     =\u003e 'trek@emberjs.com',\n                      'pony_name' =\u003e 'Veiled Steel' ));\nBronie::create(array( 'name'      =\u003e 'Erik Bryn',\n                      'email'     =\u003e 'erik@emberjs.com',\n                      'pony_name' =\u003e 'Defiant Perfection' ));\nBronie::create(array( 'name'      =\u003e 'Kris Seldon',\n                      'email'     =\u003e 'kris@emberjs.com',\n                      'pony_name' =\u003e 'Magical Drop' ));\nBronie::create(array( 'name'      =\u003e 'Stefan Penner',\n                      'email'     =\u003e 'stefan@emberjs.com',\n                      'pony_name' =\u003e 'Heroic Fire' ));\nBronie::create(array( 'name'      =\u003e 'Leah Silber',\n                      'email'     =\u003e 'leah@emberjs.com',\n                      'pony_name' =\u003e 'Radiant Aura' ));\nBronie::create(array( 'name'      =\u003e 'Alex Matchneer',\n                      'email'     =\u003e 'alex@emberjs.com',\n                      'pony_name' =\u003e 'Midnight Rainbow' ));\nBronie::create(array( 'name'      =\u003e 'Robert Jackson',\n                      'email'     =\u003e 'robert@emberjs.com',\n                      'pony_name' =\u003e 'Charged Sprout' ));\n\n$this-\u003ecommand-\u003einfo('Bronie table seeded!');\n```\n\nNext, run the seed:\n\n```bash\n$ php artisan db:seed\n```\n\n### View the bronies JSON\n\n```bash\n$ php artisan serve\n$ open http://localhost:8000/bronies\n```\n\nModify the function `index` of the `BronieController` to return the list of bronies:\n\n```php\npublic function index()\n{\n  $bronies = Bronie::all();\n  return Response::json(array('bronies' =\u003e $bronies));\n}\n```\n\nNow open up the browser and refresh!\n\n### Store\n\nAdd the following into your `store` function:\n\n```php\npublic function store()\n{\n  $rules = array(\n    'name'       =\u003e 'required',\n    'email'      =\u003e 'required|email',\n    'pony_name'  =\u003e 'required'\n  );\n\n  $validator = Validator::make(Input::all(), $rules);\n\n  if ($validator-\u003efails()) {\n    return Response::json(array('errors' =\u003e $validator-\u003emessages()));\n\n  } else {\n    $bronie = new Bronie;\n    $bronie-\u003ename       = Input::get('name');\n    $bronie-\u003eemail      = Input::get('email');\n    $bronie-\u003epony_name  = Input::get('pony_name');\n    $bronie-\u003esave();\n\n    return Response::json(array('bronie' =\u003e $bronie));\n  }\n}\n```\n\nYou can test this out using cURL:\n\n```bash\ncurl -i \\\n     -X POST \\\n     -H \"Accept: applicaton/json\" \\\n     -d \"\" \\\n     http://localhost:8000/bronies\n```\n\nThe prior cURL request will return an error response because of missing required params. Let's try with all required fields:\n\n```bash\ncurl -i \\\n     -X POST \\\n     -H \"Accept: applicaton/json\" \\\n     -d \"name=Eric\u0026email=cavneb@gmail.com\u0026pony_name=Stallion\" \\\n     http://localhost:8000/bronies\n```\n\nNow you can revisit the browser and it should return data when visiting /bronies\n\n### Show a record\n\nAdd the following to the `show` function:\n\n```php\npublic function show($id)\n{\n  $bronie = Bronie::find($id);\n\n  if ($bronie) {\n    return Response::json(array('bronie' =\u003e $bronie));\n\n  } else {\n    return Response::make(NULL, 404);\n  }\n}\n```\n\n### Update records\n\nAdd the following to the `update` function:\n\n```php\npublic function update($id)\n{\n  $rules = array(\n    'name'       =\u003e 'required',\n    'email'      =\u003e 'required|email',\n    'pony_name'  =\u003e 'required'\n  );\n\n  $validator = Validator::make(Input::all(), $rules);\n\n  if ($validator-\u003efails()) {\n    return Response::json(array('errors' =\u003e $validator-\u003emessages()));\n\n  } else {\n    $bronie = Bronie::find($id);\n\n    if ($bronie) {\n      $bronie-\u003ename       = Input::get('name');\n      $bronie-\u003eemail      = Input::get('email');\n      $bronie-\u003epony_name  = Input::get('pony_name');\n      $bronie-\u003esave();\n      return Response::json(array('bronie' =\u003e $bronie));\n\n    } else {\n      return Response::make(NULL, 404);\n    }\n  }\n}\n```\n\nYou can test this out with the cURL command:\n\n```bash\ncurl -i \\\n     -X PUT \\\n     -H \"Accept: applicaton/json\" \\\n     -d \"name=John\u0026email=john@gmail.com\u0026pony_name=Taco\" \\\n     http://localhost:8000/bronies/1\n```\n\n### Delete a Bronie, yo!\n\nAdd the following into the `destroy` function:\n\n```php\npublic function destroy($id)\n{\n  $bronie = Bronie::find($id);\n  if ($bronie) {\n    $bronie-\u003edelete();\n    return Response::make(NULL, 202);\n  } else {\n    return Response::make(NULL, 404);\n  }\n}\n```\n\nYou can test this out with the cURL command:\n\n```bash\ncurl -i \\\n     -X DELETE \\\n     http://localhost:8000/bronies/1\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderberry%2Fphp-ember-presentation-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoderberry%2Fphp-ember-presentation-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderberry%2Fphp-ember-presentation-code/lists"}