PHP编程:Laravel 4 初级教程之安装及入门
《Laravel 4 初级教程之安装及入门》要点: 0. 默认条件 本文默认你已经有配置完善的PHP+MySQL运行环境,懂得PHP网站运行的基础知识.跟随本教程走完一遍,你将会得到一个基础的包括登录的简单blog系统,并将学会如何使用一些强大的Laravel插件和composer包(Laravel插件也是composer包). 软件版本:PHP 5.4+,MySQL 5.1+ 1. 安装 许多人被拦在了学习Laravel的第一步,安装.并不是因为安装教程有多复杂,而是因为【众所周知的原因】.在此我保举一个composer全量中国镜像:http://pkg.phpcomposer.com/.保举“修改 composer 的配置文件”方式配置.我在写此教程时用此镜像测试,安装失败,若你也出现这种情况,可以尝试另一个composer中国镜像:http://composer-proxy.com/. 镜像配置完成后,切换到你想要放置该网站的目录下,运行敕令:
代码如下:
composer create-project laravel/laravel learnlaravel 然后,稍等片刻,当前目录下就会出现一个叫 learnlaravel 的文件夹,这时候如果你通过浏览器拜访 learnlaravel/public/ 目录,基本都会显示 Error in exception handler.?,这是因为 learnlaravel/app/storage 目录没有777权限,设置好权限即可看见页面如下图: 恭喜你~Laravel安装胜利! 不想配置镜像的同学,可以使用 Laravel 界异常著名的超超搞得安装神器:https://github.com/overtrue/latest-laravel 2. 需要插件安装及配置 我们使用著名的Sentry插件来构建登录等权限验证体系. 打开 ./composer.json,变革为:
代码如下:
"require": { ?"laravel/framework": "4.2.*", ?"cartalyst/sentry": "2.1.4" }, 然后,在项目根目录下运行敕令
代码如下:
composer update 然后稍等一会儿,它会提醒 cartalyst/sentry 2.1.4安装完成. 同理,我们将安装一个开发用的非常强年夜的插件,way/generators,这是它在composer库中的名字.在 composer.json中增加:
代码如下:
"require-dev": { ??? "way/generators": "~2.0" }, 放在“require”的下面. 运行 composer update,之后在 ./app/config/app.php 中增加设置装备摆设:
代码如下:
'WayGeneratorsGeneratorsServiceProvider' 安装完成过,在命令行中运行 php artisan,就可以看到这个插件带来的许多新的功效. 有人会问,为什么用了国内镜像还是如此之慢?其实composer在update的时候最慢的地方并不是下载,而是下载之前的依赖关系解析,由于Laravel依赖的composer包非常之多,PHP脚本的执行速度又比拟慢,所以每次update等个两三分钟很正常,习惯就好. 3. 数据库树立及迁移 数据库配置文件位于 ./app/config/database.php,我们必要把“connections”中的“mysql”项改成我们必要的配置.下面是我的配置:
代码如下:
'mysql' => array( ?'driver'??? => 'mysql', ?'host'????? => 'localhost', ?'database'? => 'laravel', ?'username'? => 'root', ?'password'? => 'password', ?'charset'?? => 'utf8', ?'collation' => 'utf8_unicode_ci', ?'prefix'??? => 'l4_', ), ?prefix为表前缀,这个Laravel会帮我们自动维护,大胆写上不消担心. 这时候你必要去数据库建立此数据库,然后在命令行中输入:
代码如下:
php artisan migrate --package=cartalyst/sentry 执行完成后,你的数据库里就有了5张表,这是sentry本身建立的.sentry在Laravel4下的配置详情见 https://cartalyst.com/manual/sentry#laravel-4,我大致说一下: 在 ./app/config/app.php 中 相应的地位 分别增加以下两行:
代码如下:
'CartalystSentrySentryServiceProvider', 'Sentry' => 'CartalystSentryFacadesLaravelSentry', 权限系统的数据库设置装备摆设到此为止. 我们的简单blog系统将会有两种元素,Article和Page,下面我们将创立articles和pages数据表,命令行运行:
代码如下:
php artisan migrate:make create_articles_table --create=articles php artisan migrate:make create_pages_table --create=pages 这时候,去到 ./app/database/migrations,将会看到多出了两个文件,这便是数据库迁移文件,过一会我们将操作artisan将这两个文件描述的两张表变成数据库中真实的两张表,放心,一切都是自动的. 下面,在***_create_articles_table.php中改动:
代码如下:
Schema::create('articles',function(Blueprint $table) { ?$table->increments('id'); ?$table->string('title'); ?$table->string('slug')->nullable(); ?$table->text('body')->nullable(); ?$table->string('image')->nullable(); ?$table->integer('user_id'); ?$table->timestamps(); }); 在***_create_pages_table.php中改动:
代码如下:
Schema::create('pages',function(Blueprint $table) { ?$table->increments('id'); ?$table->string('title'); ?$table->string('slug')->nullable(); ?$table->text('body')->nullable(); ?$table->integer('user_id'); ?$table->timestamps(); }); 下面,便是见证奇迹的时刻,在命令行中运行:
代码如下:
php artisan migrate 这时候数据库中的articles表和pages表就树立完成了. 4. 模子 Models 接下来我们将接触Laravel最为强大的部门,Eloquent ORM,真正提高生产力的地方,借用库克的话说一句,鹅妹子英! 我们在命令行运行下列语句以创立两个model:
代码如下:
php artisan generate:model article php artisan generate:model page 这时候,在 ./app/models/ 下就呈现了两个model文件.这两个类继承了Laravel提供的核心类 Eloquent. 5. 数据库添补 分离运行下列命令:
代码如下:
php artisan generate:seed page php artisan generate:seed article 这时,在 ./app/database/seeds/ 下就出现了两个新的文件,这就是我们的数据库填充文件.Laravel提供自动数据库填充,十分便利. generator默认使用FakerFactory作为随机数据生成器,所以我们必要安装这个composer包,地址是 https://packagist.org/packages/fzaninotto/faker,跟generator一起安装在 require-dev 中即可.具体安装请自行完成,可以参考Sentry和Generator,这是第一次练习. 接下来,分别变动这两个文件:
代码如下:
Article::create([ ? 'title'?? => $faker->sentence($nbWords = 6), ? 'slug'??? => 'first-post', ? 'body'??? => $faker->paragraph($nbSentences = 5), ? 'user_id' => 1, ]); Page::create([ ? 'title'?? => $faker->sentence($nbWords = 6), ? 'slug'??? => 'first-page', ]); 然后,我们必要在 DatabaseSeeder.php 中增加两行,让Laravel在seed的时候会带上我们新增的这两个seed文件.
代码如下:
$this->call('ArticleTableSeeder'); $this->call('PageTableSeeder'); 下面就要真正的把数据添补进数据库了:
代码如下:
php artisan db:seed 操作完成以后去数据库看看,数据已经添补进去了,article和page各10行. 欢迎参与《Laravel 4 初级教程之安装及入门》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |