当前位置: 首页 > 工具软件 > 进阶2048 > 使用案例 >

Laravel 进阶笔记

桑飞语
2023-12-01

所谓进阶, 刚摸了一个礼拜, 总体感觉容易上手, 很多已经实现的模块功能, 比如"记住我", "比如激活邮件", "比如用户认证"等等, 这些东西, thinkphp都没有(或者我无知, 有但是我不知道), 现在有一些问题:

1. 不重复造轮子当然好, 但是如果想在轮子上镶点儿钻, 是不是就麻烦了?

2. 增删改查, 以及join类的查询应该怎么做, 还不是太清楚, 或者, 我压根看不到sql语句, 并不知道ORM跟sql语句之前的直接联系, 感觉学到的东西很模糊, 难以记忆, 估计要看大量Laravel的文档才行.

 

接下来一周是进阶课程.

进阶课程是有关一个简单的BBS

首先产品定义, 需要开发的项目有三种元素:

1. 角色: 即admin, 管理员, 游客, 注册用户, 4个角色role, admin即系统的root用户, 对管理员有管理权.

 

2. 信息:

用户: 模型名称叫User, UGC产品, 内容都是User产生

话题: 模型名Topic, 即帖子, 帖子由用户产生

分类: 模型名称Category, 即我们常说的版块, 板块由管理员产生

回复: Reply, 也又用户自己产生, 其实这个Reply是不是也是话题的一种, 即每个话题增加一个属性, 即父话题.

 

3. 动作:

无非增删改查.

 

其实过去写接口, 没有玩到Session, 安全性的问题, 在这种php前后一起混着搞的项目中, 这些东西都要涉及并考虑到.

例如权限, 可以细分到可怕的程度:

https://laravel-china.org/courses/laravel-intermediate-training/5.7/product-decomposition/2601

而权限的问题, 只要写好对应的policy, 在Laravel里面变得没那么困难了.

$ composer config -g repo.packagist composer https://packagist.laravel-china.org

compose加速.

 

 

首先, 用composer创建项目, 这个目录在vagrant虚拟机和物理主机之间都要能访问到, 这样才能利用Win/Mac的IDE工具方便的编辑代码.

$composer create-project laravel/laravel larabbs --prefer-dist "5.7.*"

具体环境搭建, 下面这个链接:

https://laravel-china.org/docs/laravel-development-environment/5.7

修改Homestead.yaml这个构建文件, 增加新的虚拟站点和数据库名称, 同时修改host文件

> cd ~/Homestead && vagrant provision && vagrant reload

 这里碰到第一个坑, 改yaml文件后, 无法provision了, 后来直接复制粘贴了下面的内容才行:

ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/Code
      to: /home/vagrant/Code

sites:
    - map: homestead.test
      to: /home/vagrant/Code/Laravel/public
    - map: larabbs.test # <--- 这里
      to: /home/vagrant/Code/larabbs/public # <--- 这里

databases:
    - homestead
    - larabbs # <--- 这里

variables:
    - key: APP_ENV
      value: local

修改了一下cpu数量跟RAM大小, 不然感觉vm不给力.

接着修改根目录的.env文件

APP_NAME=LaraBBS
APP_ENV=local
APP_KEY=your_app_key
APP_DEBUG=true
APP_URL=http://larabbs.test

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=larabbs
DB_USERNAME=homestead
DB_PASSWORD=secret

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=sync

以及redis配置, 注意, 我们马上要玩redis了..

如果hosts文件修改好了,直接访问larabbs.test应该可以看到默认首页了.

如果看到提示说"No input file specified.", 检查yaml配置中的目录大小写.

 

接着就是在github上创建repository, 方便备份. (这么说有点儿不对哈, 怎么能把git当备份工具呢?)

然后修改config/app.php, 时区为"Asia/Shanghai", local为'zh-CN', 这样有些错误信息, 会由第三方的翻译插件翻译成中文.

在composer.json文件的autoload里面加上自己新增的辅助函数文件app/helpers.php

"autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "files": [
            "app/helpers.php"
        ]
    },

然后用composer dump-autoload重新加载.

 

接着, 先构建一个统一的前端布局layout文件, 在views/layout文件夹中

app.blade.php, 主布局文件, 其他view都要继承它

_header.blade.php和_footer.blade.php, 头尾布局

_messages.blade.php, flash里面的消息.

然后即使创建控制器:

$ php artisan make:controller PagesController

接着就是view跟路由.

然后把前端任务自动化管理工具Laravel Mix用yarn 装好.

$ yarn config set registry https://registry.npm.taobao.org
$ yarn install
$ cnpm run watch-poll

就可以看到主页了.

cnpm run watch-poll 会持续地关注scss, 有改动它会自动编译.

转载于:https://www.cnblogs.com/Montauk/p/10188592.html

 类似资料: