




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Web技术开发实验报告学号3013216076班级 3班姓名 王亚飞 (实验日期:2015年6月25日)php一、 实验目的通过安装studio,了解studio的工作过程与原理。通过laravel的安装过程,了解数据库与studio链接的过程二、 实验题目studio安装与php写laravel过程三、 实验步骤 Studio安装过程 安装过程和一般的没有什么两样。下一步继续,选择安装路径设置了安装路径后,点击安装即可进行继续安装。等待安装过程结束安装过程中会自动配置一些环境,后会安装完成,点击完成即可启动android-studio,下边是启动后截图。android-studio启动时提示。如果是之前安装过老版本的android-studio,选择第一个,第一次安装默认选择即可启动后,可以选择open项目或者new一个。新建一个项目点击next,选择模板样式完成创建后,启动下载需要的组件。所以建议【联网】最后结果如图,项目文件夹默认有着几个系统需求分析为实现登录和注册。设计一个包,包中包含User类。User中有账号,密码,昵称三类属性。设计登录页面,输入账号和密码实现登录。当输入信息正确时,显示成功,否则失败。设计注册页面,输入账号,密码,昵称三属性实现注册。设计上传和下载页面,点击相应按钮实现相应动作。系统设计和实验结果1,显示结果页面核心代码 2,注册相关代码A,注册界面核心代码输入信息账号:密码:昵称:B,实现注册的servlet核心代码driverName=com.microsoft.sqlserver.jdbc.SQLServerDriver; Class.forName(driverName); String name = request.getParameter(name);String pwd = request.getParameter(pwd);String call = request.getParameter(call);Connection con=null; String dbURL=jdbc:sqlserver:/localhost:1433;DatabaseName=student; String userName=sa; String userPwd=a693501; con=DriverManager.getConnection(dbURL,userName,userPwd); PreparedStatement ps = null;String sql = insert into admin (name,pwd,call)values(?,?,?); tryps = con.prepareStatement(sql); ps.setString(1,name);ps.setString(2, pwd);ps.setString(3, call);ps.executeUpdate();C 结果截图3,登录相关代码A,登录界面核心代码请登录 输入信息账号:密码:B,实现登录servlet核心代码String driverName=com.microsoft.sqlserver.jdbc.SQLServerDriver;Class.forName(driverName);Connection con=null;String dbURL=jdbc:sqlserver:/localhost:1433;DatabaseName=student;String userName=sa; String userPwd=a693501; con=DriverManager.getConnection(dbURL,userName,userPwd); PreparedStatement ps = null;ResultSet rs = null;User user=new User();String sql = select * from admin where name=? and pwd=?;ps = con.prepareStatement(sql);ps.setString(1, name);ps.setString(2, pwd);rs = ps.executeQuery();if (rs.next() user.setName(rs.getString(name);user.setPwd(rs.getString(pwd);user.setCall(rs.getString(call); else user = null;if(null=user) request.setAttribute(message, login fail);request.getRequestDispatcher(/result.jsp).forward(request,response);elserequest.setAttribute(message, login success);request.getRequestDispatcher(/result.jsp).forward(request,response);C,结果截图1,成功时2,失败时Php写laravel过程 安装Composer之后,你就可以通过命令行使用如下命令安装Laravel了:composer create-project laravel/laravel your-project-name或者,你可以从 Github仓库 下载。接下来,在 安装Composer 之后,在项目根目录下执行 composer install 命令。该命令将会下载以及安装框架的依赖组件。写入权限安装完 Laravel ,你还需要为web服务器设置 app/storage 目录的写入权限。请参考 安装 一节以获取更多关于配置方面的信息。目录结构安装完框架后,你需要熟悉一下该项目的目录结构。app 文件夹包含了一些例如 views ,controllers 和 models 目录。 程序中大部分代码将要存放这些目录下。你也可以查看一下 app/config 文件夹里一些配置项目。路由我们开始创建我们第一个路由。在 Laravel,简单路由的方法是闭包。打开 app/routes.php 文件加入如下代码:Route:get(users, function() return Users!;);现在,你在 web 浏览器输入 /users,你应该会看到 Users! 输出。真棒!已经创建了你第一个路由。路由也可以赋予控制器类。例如:Route:get(users,UserControllergetIndex);该路由告知框架 /users 路由请求应该调用 UserController 类的 getIndex 方法。要查看更多关于路由控制器信息,查看 控制器文档 。创建视图接下来,我们要创建视图来显示我们用户数据。视图以HTML代码存放在 app/views 文件夹。我们将存放两个视图文件到该文件夹:layout.blade.php 和 users.blade.php。首先,让我们先创建 layout.blade.php 文件:代码如下: Laravel Quickstart yield(content) 接着, 我们创建 users.blade.php 视图:复制代码 代码如下:extends(layout)section(content) Users!stop这里的语法可能让你感到陌生。因为我们使用的是 Laravel 模板系统:Blade。Blade 非常快,因为仅使用了少量的正则表达式来为你的模板编译成原始PHP代码。Blade提供强大的功能,例如模板继承,还有一些常用的PHP控制结构语法糖,例如 if 和 for。 查看 Blade 文档 了解更多。现在我们有了我们视图,让我们返回 /users 路由。我们用视图来替代返回 Users!:复制代码 代码如下:Route:get(users, function() return View:make(users););漂亮!现在你成功创建了继承至layout的视图。接下来,让我们开始数据库层。创建迁移要创建表来保存我们数据,我们将使用 Laravel 迁移系统。迁移描述数据库的改变,这让分享给他们团队成员非常简单。首先,我们配置数据库连接。你可以在 app/config/database.php 文件配置所有数据库连接信息。默认,Laravel 被配置为使用 SQLite,并且一个 SQLite 数据库存放在 app/database 目录。你可以将数据库配置文件的 driver 选项修改为 mysql 并且配置 mysql 连接信息。接下来,要创建迁移,我们将使用 Artisan CLI。在项目根目录中,在终端中执行以下命令:复制代码 代码如下:php artisan migrate:make create_users_table然后,找到生成的迁移文件 app/database/migrations 目录。该文件包含了一个包含两个方法: up 和 down 的类。在 up 方法,你要指名数据库表的修改,在 down 方法中你只需要移除它。让我们定义如下迁移:复制代码 代码如下:public function up() Schema:create(users, function($table) $table-increments(id); $table-string(email)-unique(); $table-string(name); $table-timestamps(); );public function down() Schema:drop(users);然后,我们在项目根目录中使用终端运行 migrate 命令来执行迁移:复制代码 代码如下:php artisan migrate如果你想回滚迁移,你可以执行 migrate:rollback 命令。现在我们已经有了数据库表,让我们让添加一些数据!Eloquent ORMLaravel 提供非常棒的 ORM:Eloquent。如果你使用过 Ruby on Rails 框架,你会发现 Eloquent 很相似,因为它遵循数据库交互的 ActiveRecord ORM 风格。首先,让我们来定义个模型。ELoquent 模型可以用来查询相关数据表,以及表内的某一行。别着急,我们很快会谈及!模型通常存放在 app/models 目录。让我们在该目录定义个 User.php 模型,如:复制代码 代码如下:class User extends Eloquent 注意我们并没有告诉 Eloquent 使用哪个表。Eloquent 有多种约定, 一个是使用模型的复数形式作为模型的数据库表。非常方便!使用你喜欢的数据库管理工具,插入几行数据到 users 表,我们将使用 Eloquent 取得它们并传递到视图中。现在我们修改我们 /users 路由如下:复制代码 代码如下:Route:get(users, function() $users = User:all(); return View:make(users)-with(users, $users););让我们来看看该路由。首先,User 模型的 all 方法将会从 users 表中取得所有记录。接下来,我们通过 with 方法将这些记录传递到视图。with 方法接受一个键和一个值,那么该值就可以在视图中使用了。激动啊。现在我们准备将用户显示在我们视图!显示数据现在我们视图中已经可以访问 users 类,我们可以如下显示它们:复制代码 代码如下:extends(layout)section(content) foreach($users as $user) $user-name endforeachstop你可以发现没有找到 echo 语句。当使用 Blade 时,你可以使用两个花括号来输出数据。非常简单,你现在应该可以通过 /users 路由来查看到用户姓名作为响应输出。 Laravel 初始化流程public/index.phprequire _DIR_././bootstrap/autoload.php;1、 定义LARAVEL_START初始时间常量2、require _DIR_././vendor/autoload.php这个文件是 Composer 的 class loader , 此文件会注册 Laravel 中所有的 classes。这样我们就不用自己 include class。3、compile.php这个文件是把最常用的 classes 先 compile 好,有点 cache 的意思。4、PatchworkUtf8Bootup:initMbstring();这是一个处理 UTF-8 字符串的 Library5、IlluminateSupportClassLoader:register();因为在最开始就已经使用到 composer 的 ClassLoader ,这个 ClassLoader 是 laravel 本身的 ClassLoader。如果有任何档案因为任何原因没有被 Load 到 Composer ClassLoader 中, 我们可以使用这个 ClassLoader 来另外加载到 spl_autoload_register 中。此外 ClassLoader 可以用在 application 的任何地方。6、IlluminateWorkbenchStarter:start($workbench);$workbench 为 workbench 文件夹的路径。方法会读取所有 workbench 中所有文件名为 autoload.php 并且 require_once 这些 autoload.php。这样在 Laravel 中就可以正确的调用在 workbench 文件夹中的扩展包。$app = require_once ./bootstrap/start.php1、$app = new IlluminateFoundationApplication实例化 application 本身。2、$app-detectEnvironment( 监测运行环境 )根据运行环境的 hostname 来读取对应的 config file3、$app-bindInstallPaths(require ./paths.php);这行的 paths.php 保存一些常用的路径:public pathstorage pathapp pathbase path4、$framework = $apppath.base./vendor/laravel/framework/src$framework 中存放框架的路径。5、require $framework./Illuminate/Foundation/start.php;读取框架的 start.php动态的调整错误信息,将所有的 PHP 错误都回传读取 mycrypt 扩展将必须的 classes 都 load 进来IlluminateHttpRequest IlluminateSupportFacadesFacade IlluminateFoundationAliasLoader IlluminateConfigEnvironmentVariables IlluminateConfigRepository5.1 、$app-instance(app, $app);将 $app 绑定到 ioc Container 中,instance 方法是将现有的实例跟 ioc 做绑定。5.2、$appenv = $env = $testEnvironment监测是否为 phpunit test 执行,如果是的话就读取正确的配置文件。5.3、Facade:clearResolvedInstances()跟Facade:setFacadeApplication($app)先清除 Facade 中的 Instances然后再设置 Facade app5.4、$app-registerCoreContainerAliases();因为一开始是使用比较短的名字来标识 IoC Container 每一个核心的模块,这里是将核心模块用完整名称来标识,完整的名称可以让 Dependency Injection 好处理。5.5、with($envVariable = EnvironmentVariables($app-getEnvironmentVariablesLoader()-load($env);读取所有的 $_ENV 跟 $_SERVER 变量到程序中。5.6、注册 Configuration Repository 到 IoC Container 中5.7、$app-startExceptionHandling();使用 Laravel 本身的异常处理。5.8、if($env!= testing) ini_set(display_errors, off)关闭 PHP 本身的错误处理5.9、设置程序 timezone5.10、AliasLoad:getInstance($aliases)-register();$alias 里面为一个数组,键为所有模块的 alias, 值为 alias 的完整名称。 register 所有 alias 到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国百货行业发展研究与产业战略规划分析评估报告
- 2025至2030中国生物貂行业产业运行态势及投资规划深度研究报告
- 2025至2030中国玉米淀粉行业发展研究与产业战略规划分析评估报告
- 影楼团队培训课件
- 技术赋能教育实现个性化教学的突破
- 财务报销流程培训
- 教育数据挖掘的潜力学生在多元评价体系中的应用
- 年度培训计划编写课件
- 技术创新助力教育混和教学模式新发展
- 智慧城市服务中智能公共服务设施的可持续发展融资策略
- 2025至2030全球及中国企业文件共享和同步(EFSS)行业产业运行态势及投资规划深度研究报告
- 上海金山区属国有企业招聘笔试真题2024
- 2025至2030中国碳化硅陶瓷膜行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国生石灰行业市场深度调研及发展趋势与投资方向报告
- 一通三防管理课件
- 2025秋二年级上册语文上课课件 2 我是什么
- 胖东来总值班管理制度
- 口腔诊室终末消毒流程
- 2024年广州市荔湾区社区专职招聘考试真题
- 切口感染案例分析
- 2025-2030年中国管道运输行业市场深度分析及发展前景与投资研究报告
评论
0/150
提交评论