首页 / 知识
学习 Laravel - Web 开发实战入门笔记(1)
2023-04-11 15:21:00

本笔记根据LearnKu教程边学边记而成。该教程以搭建出一个类似微博的Web应用为最终成果,在过程中学习Laravel的相关知识。
准备开发环境
原教程使用官方推荐的Homestead开发环境。由于最近Docker开始流行,并且也有相应的Laravel对应的容器。所以本文以Laradock作为开发环境。
安装Laradock
克隆Laradock仓库到本地。
gitclonehttps://github.com/laradock/laradock.git
最终文件夹结构应该像这样:
+laradock
+project-z
配置Laradock
复制配置文件
bashcdlaradockcpenv-example.env#复制配置文件
进入Workspace
bash#运行Laradockdocker-composeup-dnginx#进入LaradockWorkspacedocker-composeexec--user=laradockworkspacebash#ForGitBashwinptydocker-composeexec--user=laradockworkspacebash
配置国内加速镜像
#Workspace
composerconfig-gl#查看composer设置
composerconfig-grepo.packagistcomposerhttps://mirrors.aliyun.com/composer/#设置国内加速镜像
构建页面
创建应用
#Workspace
composercreate-projectlaravel/laravelweibo--prefer-dist"5.8.*"
配置Nginx域名
cpnginx/sites/laravel.conf.examplenginx/sites/weibo.conf
修改新复制出的配置文件里的路径为将要创建的项目路径。
修改Host
编辑C:/Windows/System32/Drivers/etc/hosts
增加一条127.0.0.1weibo.test
.env文件
.env文件包含了项目的一些设置,我们进行一些修改。
APP_NAME=Weibo
APP_ENV=local
APP_KEY=base64:nsvnM5l0N5cOzT/dFqfUoYlkYffhDPnKPuYU4AWMdPc=
APP_DEBUG=true
APP_URL=http://weibo.test
为了方便,我们在本地使用sqlite数据库。
注释掉原有DB相关设置,添加下面内容
DB_CONNECTION=sqlite
DB_DATABASE=/database/database.sqlite
并且创建相应数据库文件
touchdatabase/database.sqlite
使用Git管理代码
cdweibo
gitinit
gitadd-A
gitcommit-m"Initialcommit"
上传到Gitee
gitremoteaddorigingit@gitee.com:codingbit/weibo.git
gitpush-uoriginmaster
使用Heroku部署应用
需要先安装heroku-cli工具。
创建HerokuApp
herokucreate
配置Procfile文件:
echoweb:vendor/bin/heroku-php-apache2public/>Procfile
gitadd-A
gitcommit-m"ProcfileforHeroku"
gitpush
herokubuildpacks:setheroku/php
生成AppKey
#Workspace
$phpartisankey:generate--show
base64:ta1aE+E8kuyDFlURbUrHEtL4HY71WtoffyNgUKldMWw=
#Host
herokuconfig:setAPP_KEY=base64:ta1aE+E8kuyDFlURbUrHEtL4HY71WtoffyNgUKldMWw=
推送到Heroku上
gitpushherokumaster
上传成功,访问地址https://cbit-weibo.herokuapp.com/即可看到效果。
统一代码风格
通过编辑器的EditorConfig插件,统一代码风格。
.editorconfig
root=true
[*]
charset=utf-8
end_of_line=lf
insert_final_newline=true
indent_style=space
indent_size=4
trim_trailing_whitespace=true
[*.md]
trim_trailing_whitespace=false
[*.yml]
indent_size=2
[*.{js,html,blade.php,css,scss}]
indent_style=space
indent_size=2
静态页面
架子搭好了,开始学习创建基础静态页面。
新建分支
gitcheckoutmaster
gitcheckout-bstatic-pages
移除无用视图
默认的welcome.blade.php视图文件,没有用,删掉。
rmresources/views/welcome.blade.php
配置路由
routes/web.php
<?php
Route::get('/','StaticPagesController@home');
Route::get('/help','StaticPagesController@help');
Route::get('/about','StaticPagesController@about');
get方法有两个参数:1.访问的URL;2.操作的控制器及对应的方法
在Laravel中我们较为常用的几个基本的HTTP操作分别为GET、POST、PATCH、DELETE。
GET常用于页面读取
POST常用于数据提交
PATCH常用于数据更新
DELETE常用于数据删除
其中,PATCH和DELETE是不被浏览器所支持的,我们可以通过在提交表单中做一些手脚,让服务器以为这两个动作是从浏览器中发出的一样。
生成静态页面控制器
生成静态页面控制器:
phpartisanmake:controllerStaticPagesController
添加三个方法
classStaticPagesControllerextendsController
{
publicfunctionhome()
{
return'主页';
}
publicfunctionhelp()
{
return'帮助页';
}
publicfunctionabout()
{
return'关于页';
}
}
添加静态页面视图
控制器中渲染视图,需要用到view方法,view方法接收两个参数,第一个参数是视图的路径名称,第二个参数是与视图绑定的数据,第二个参数为可选参数。
app/Http/Controllers/StaticPagesController.php
classStaticPagesControllerextendsController
{
publicfunctionhome()
{
returnview('static_pages/home');
}
publicfunctionhelp()
{
returnview('static_pages/help');
}
publicfunctionabout()
{
returnview('static_pages/about');
}
}
默认情况下,所有的视图文件都存放在resources/views文件夹下。
下面创建三个视图。
resources/views/static_pages/home.blade.php
<!DOCTYPEhtml>
<html>
<head>
<title>WeiboApp</title>
</head>
<body>
<h1>主页</h1>
</body>
</html>
resources/views/static_pages/help.blade.php
<!DOCTYPEhtml>
<html>
<head>
<title>WeiboApp</title>
</head>
<body>
<h1>帮助页</h1>
</body>
</html>
resources/views/static_pages/about.blade.php
<!DOCTYPEhtml>
<html>
<head>
<title>WeiboApp</title>
</head>
<body>
<h1>关于页</h1>
</body>
</html>
使用通用视图
使用通用视图避免代码重复的问题。
resources/views/layouts/default.blade.php
<!DOCTYPEhtml>
<html>
<head>
<title>@yield('title','WeiboApp')-Laravel新手入门教程</title>
</head>
<body>
@yield('content')
</body>
</html>
Laravel的Blade模板支持继承,这意味多个子视图可以共用父视图提供的视图模板。
修改视图模板。
resources/views/static_pages/home.blade.php
@extends('layouts.default')
@section('content')
<h1>主页</h1>
@stop
resources/views/static_pages/help.blade.php
@extends('layouts.default')
@section('title','帮助')
@section('content')
<h1>帮助页</h1>
@stop
resources/views/static_pages/about.blade.php
@extends('layouts.default')
@section('title','关于')
@section('content')
<h1>关于页</h1>
@stop
Git代码版本控制
接着让我们将本次更改纳入版本控制中:
gitadd-A
gitcommit-m"基础页面"
提交代码
将Git切换到master分支,并合并static-pages分支上的修改:
gitcheckoutmaster
gitmergestatic-pages
最后将代码推送到GitHub和Heroku上:
gitpush#推送到Gitee
gitpushherokumaster#上线到Heorku
|
最新内容
相关内容
文本处理用c还是用python
文本处理用c还是用python,位置,培训,包装,对比,字符串,函数,文本,语言,字符,效率,文本处理python与c的对比:如下c++语言:C++语言实现C++中没有机器学习用java还是python?
机器学习用java还是python?,分析,环境,数据,培训,发展,机器,结果,控制台,生态环境,有用,机器学习用python更合适。机器学习不需要面向对象,不python脚本中有乱码怎么解决
python脚本中有乱码怎么解决,代码,培训,脚本,乱码,中文,下面,英语系,源文件,语句,源码,有时候,在Python脚本里有中文的时候,会报下面的错误:Non-python为什么不适合web开发
python为什么不适合web开发,平台,培训,一致,环境,代码,技术,业务,性能,虚拟机,进程,python不适合web开发的原因:1、性能堪忧。写个httpserverpython和php学哪个做web开发好
python和php学哪个做web开发好,数据,较大,技术,培训,代码,市场,人工智能,行业,份额,网站,不少打算学编程的学生,想从事web开发行业,但是对于web如何看电脑python版本
如何看电脑python版本,电脑,培训,版本,命令,以上,方法,更多,内容,python查看版本的方法:1、使用python-V命令查看C:\Users\Administrator>Python可以开发前端吗?
Python可以开发前端吗?,代码,管理,设备,网站,软件,培训,工具,服务,框架,前端,python是可以开发网页的,比如Django和Flask等基于Python的Web框python脚本怎么自动生成文件
python脚本怎么自动生成文件,工作,名字,通用,培训,文件,脚本,内容,参数,关系,中将,python脚本自动生成需要文件在工作中我们经常需要通过一个Python集成开发环境
Python集成开发环境,环境,代码,平台,数据,系统,智能,工具,发行,项目,管理,1.PyCharmPyCharm是唯一一款专门面向Python的全功能集成开发环境,同学习编程Python用什么电脑
学习编程Python用什么电脑,电脑,数据,培训,基础,产品,以上,固态,经济基础,算法,电脑硬件,python对于电脑硬件基本没什么要求,单纯学Python的话python3.6版本无法卸载怎么解决
python3.6版本无法卸载怎么解决,培训,版本,以上,方法,更多,内容,卸载python3的方法1、卸载python3.6sudoapt-getremovepython3.62、卸载ppython学习python编程可以从事什么
python学习python编程可以从事什么工作岗位,工作,分析,网络,数据,数字,行政,销售,培训,资产,庞大,一、学Python编程能做的工作,编程方向:1、Web