php laravel框架初探

最近浏览国外一些招骋网站,发现PHP框架中Laravel相对比较火,但国内来说相对少一些,常用的是TP,就本身而言,我对比了TP,CI,Laravel,这三个框架,个人比较喜欢CI框架,一方面它比TP执行效率高,调用加载类和方法少一些,另一方面它比Laravel框架更易上手,而且比较灵活.具说Laravel运行速度方面有待于优化,反正作为一名初研究这种框架的人,实在不理解老外为什么好这口(Laravel).
书规正传,自己写了个小DEMO,文章留言版(没有管理后台),以供参照吧!

贴上常用的东西:

安装composer
composer相关其下的资源包https://packagist.org/explore/

laravel安装 
参考https://blog.csdn.net/sun_96216/article/details/81326952

在程序目录下执行Composer安装laravel项目命令:
composer create-project laravel/laravel xxxxx

配置数据库
1) config/database.php
2) .env
使用Migration

一.创建模型实例 
DOS: php artisan make:model Xxxx
顺便生成一个数据库迁移可以在结尾处加 -m

以下是模型内部定义

生成的模型若不定义数据表名,则默认小写模型名称
protected $table = 'my_flights';

同理也可定义主键id
protected $primaryKey = 'id';//主键在默认情况下将自动被强制转换为 int;若想使用非递增或者非数字的主键,必须在模型 public $incrementing 属性设置为false

时间戳
默认情况下数据库表有created_at和updated_at 字段.如不希望让Eloquent自动维护,可在模型内将$timestamps属性设置:
public $timestamps = false;

如自定义时间戳格式,可在模型内设置$dateFormat.这个决定了日期应如何在数据库中存储,及当模型被序列化成数组或JSON 格式
protected $dateFormat = 'U';

默认情况下所有的Eloquent模型会使用应用程序中默认的数据库连接设置.如想为模型指定不同的连接:
protected $connection = 'connection-name';

二.创建控制器实例 
php artisan make:controller Xxxxx 

翻页
前面是执行的数据查询->paginate(3);

三.数据库相关操作
https://laravel-china.org/docs/laravel/5.4/database/1258#configuration
https://laravel-china.org/docs/laravel/5.4/queries/1259

多条/单条/联合查询/添加/更新/删除

四.配置路由访问地址
roubtes/web.php
Route::get('/','Xxxx@index');

1)前后端分离主要修改文件\app\Providers\RouteServiceProvider.php


    /**
     * Define the routes for the application.
     *
     * @return void
     */
    public function map()
    {
        $this->mapApiRoutes();

        $this->mapWebRoutes();

        $this->mapAdminRoutes();//后端

        $this->mapHomeRoutes();//前端

     }

增加方法

    /**
     * 管理后台
     */
    protected function mapAdminRoutes()
    {
        Route::middleware('web')
            ->namespace($this->adminNamespace)
            ->group(base_path('routes/admin.php'));
    }

    /**
     * PC端
     */
    protected function mapHomeRoutes()
    {
        Route::middleware('web')
            ->namespace($this->homeNamespace)
            ->group(base_path('routes/home.php'));
    }

2)routes下增加

Admin.php 
Route::get('/admin', 'Admin@index');

Index.php 
Route::get('/', 'Home@index');

3)app\Http\Controllers增加控制器文件...略

4)在路由中传递数组数据/读取数据表内容/模版输出
Route::get('del/{id?}', 'Home@del');//问号的意思是这个参数也可以没有


五.VIEWS模版显示数据
引用公用模版 @extends('xxxxx')
输出数据

{{ $xxx }}自动使用php中的htmlspecialchars方法来转义成实体
{!! $xxx !!}显示未转义数据

截取字符串
str_limit($xxxx,250,'...');

引用的CSS/JS文件 路径让人不理解
<link rel="stylesheet" href="{{ URL::asset('css/style.css') }}" />
<script type="text/javascript" src="{{ URL::asset('js/jquery.min.js') }}"></script>

翻页输出
{{$xxxx->render()}}


大致思路
在routes.php中注册路由 ---> 2. 创建对于的控制器 ---> 3. 在控制器中得对于方法加载视图


其它.清理缓存重启服务 
命令行DOS下
php artisan view:clear 
php artisan cache:clear
php artisan config:clear
php artisan serve

需要新增组件时在对应的项目根目录
修改composer.json
执行composer update


Laravel5-KindEditor 是基于 KindEditor 封装的 Markdown 在线HTMl编辑器,支持 Laravel5 项目。已集成本地、七牛云、阿里云文件存储。

1、安装的两种方式
① 直接编辑配置文件
将以下内容增加到 composer.json:
require: {
    "chenhua/laravel5-kindeditor": "~1.0"
}
然后运行 composer update。

② 执行命令安装
composer require chenhua/laravel5-kindeditor

2、完成上面的操作后,修改 config/app.php 中 providers 数组
Chenhua\Kindeditor\KindeditorServiceProvider::class,

3、执行 artisan 命令,生成 config/kindeditor.php 配置文件
php artisan vendor:publish --tag=kindeditor

4、修改 config/kindeditor.php 配置文件
<?php
return [
    "default"     => 'local', //默认返回存储位置url
    "dirver"      => ['local'], //存储平台 ['local', 'qiniu', 'aliyun']
    "connections" => [
        "local"  => [
            'prefix' => 'uploads/kindeditor', //本地存储位置,默认uploads
        ],
        "qiniu"  => [
            'access_key' => '',
            'secret_key' => '',
            'bucket'     => '',
            'prefix'     => '', //文件前缀 file/of/path
            'domain'     => '' //七牛自定义域名
        ],
        "aliyun" => [
            'ak_id'     => '',
            'ak_secret' => '',
            'end_point'  => '',
            'bucket'    => '',
            'prefix'    => '',
        ],
    ],
];
七牛和阿里云的配置内容,需要去对应官网申请账号并配置获取

4.使用方法
在 xxx.blade.php 编辑器相应位置添加如下代码:
<textarea id="editor_id" name="content" style="width:700px;height:300px;">
    HTML内容
</textarea>

@include('kindeditor::editor',['editor'=>'editor_id']) ---- 还是用原生的吧
以上操作能生成一个 id="editor" 的 HTML 文本编辑框,并能实时预览效果.

http://kindeditor.net/doc.php

5.掌握SESSION存储查询删除
在构造方法中使用SESSION
public function __construct(){
    $this->middleware(function ($request, $next) {
        //用这样方式获取SESSION中用户
        $this->member = $request->session()->get('member');
        return $next($request);
    });

}

注意
1.Model与Controller 中使用的文件不可以相同,如Models\Users.php与Controller\Users.php引用时会发生不知名的错误

2.提交表单时需要加
<input type="hidden" name="_token" value="{{ csrf_token() }}" />

3.输出SQL:模型->toSql();

参考学习网站

https://laravel-china.org/

https://docs.golaravel.com/docs/4.2/quick/ 快速入门

https://laravel-china.org/docs/laravel/5.4

http://www.cnblogs.com/grimm/p/5423096.html

案例
http://laravelacademy.org/laravel-project

https://github.com/slimkit/plus
 

猜你喜欢

转载自blog.csdn.net/sun_96216/article/details/81506288