首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

C# 使用File.Create方法创建文件,报进程被占用

在一个程序里偶然用了System.IO.File.Create去创建文件,运行时一直报错(进程被占用),后来在网上找到了解决办法,引用了一下。...winfrom中操作文件: 判断是否有当前的文件存在,不存在则进行创建,在进行操作; if(!...System.IO.File.Exists(fileName)) { System.IO.File.Create(fileName); } 但是当我运行到发现没有当前的文件,就直接创建当前文件,...之后直接进行操作,出问题了直接报出异常,当前文件正在另一个进程中使用……仔细一看 System.IO.File.Create(fileName)返回的类型是FileStream,ND文件流,文件流不关闭不出异常那才叫怪呢...fileName)) { using(System.IO.File.Create(fileName)) { //…… } } .Close 很关键,不然会有问题 以下是我的文件写入例程

1.1K10

创建并运行一个新的 Laravel 项目

经过 PHP 入门到实战系列的基础学习,接下来我们就可以正式开始 Laravel 框架的学习和使用了。而这一切都需要从创建一个新的 Laravel 项目开始。...注:本系列教程基于 Laravel 5.7+ 1、创建一个新的 Laravel 项目 正如官方文档所言,有两种方式可以创建一个新的 Laravel 项目,这两种创建方式都是从命令行执行的:第一种是通过全局的...推荐使用第一种方式,比较简单,执行这两种方式之前,都需要系统已经安装过 PHP 和 Composer(如果使用 Valet 或 Laragon 的话,则应该已经安装过了,如果使用的是 Homestead...目录 根目录默认包含以下一级子目录: app:存放应用核心代码,如模型、控制器、命令、服务等 bootstrap:存放 Laravel 框架每次启动用到的文件 config:用于存放项目所有配置文件...资源文件,如视图模板、语言文件、待编译的 Vue 模板、Sass、JS 源文件 routes:项目的所有路由文件都定义在这里 storage:用于存放缓存、日志、上传文件、已经编译过的视图模板等 tests

6.8K30

记一次 PHP 并发性能调优实战 -- 性能提升 104%

如果你有 php 使用经验, 那肯定就更好了 业务背景 框架及相应环境 laravel5.7, mysql5.7, redis5, nginx1.15 centos 7.5 bbr docker, docker-compose...当一个进程处于 Sleep 状态的时候, 任然占用了不少 CPU, 先不要怀疑是不是进程的问题, 我们看一下 Ttop 命令的 man page....redis 连接没有, redis 用的 predis, 这个是一个纯 PHP 实现, 性能不高, 换成了 phpredis: 打开 laravel 的 config/database.php 文件,...另外由于 Laravel 自己封装了一个 Redis 门面, 恰好 redis 扩展带来的对象名也叫 Redis....通过安装 redis 扩展, 以及使用 phpredis 来驱动 Laravel的 redis 缓存, 提升性能, 达到了又一次近 50% 的性能提升. 最终我们完成了我们的性能提升 104% 的目标

2.1K32

Laravel 5.8 新特性系列 —— 缓存有效期单位调整

Laravel 5.8 开始,传递到缓存驱动的表示缓存有效期(TTL)的整型数据单位将会从分钟调整为秒,秒级缓存会使得开发者得以对缓存周期进行更加细粒度的控制,并且符合 PSR-16 标准: The...从 Laravel 5.0 到当前的稳定版本 Laravel 5.7,当你传整数到缓存存储 操作,例如 put() 和 remember(),持续时间都以分钟表示: Cache::remember('active-posts...', 5, function () { return Post::active()->get(); }); 为了简化从早期版本(5.5或更高版本)到 Laravel 5.8 的升级路径,你还可以传递一个...DateTimeInterface 或者 DateInterval 对象到 Cache::put() 方法,不必将所有调用处的数据单位转化为秒,通过这种方式调用的另一个好处是可以对缓存时间有更加清晰和多维的控制...DateInterval::createFromDateString('5 minutes'), function () { return Post::active()->get(); }); 下面是一个使用

1.1K10

CVE-2019-9081 Laravel v5.7反序列化RCE漏洞复现

0X1 漏洞概述 最近在复现一些AWD线下赛环境,恰好看见有大佬放出的QWB的一道关于Laravel v5.7的反序列化漏洞的利用过程文章。...Laravel v5.7是一款基于php 7.1.3之上运行的优秀php开发框架,5.7.x版本中的Illuminate组件存在反序列化漏洞。...在此我们直接选择比赛的源码环境进行本地运行,使用环境配置如下: 系统:Ubuntu16.04 PHP:PHP7.3 HTTP:Apache2 开启Apache2之后,将PHP切换到...接下来在app/Http/Controllers文件夹下创建文件TaskController.php,源码如下: ? 通过上一条路由我们在访问入口文件即可连接过来。...我们通过浏览器访问环境 http://172.16.1.137/laravel-5.7/public/index.php/index?code 其中code参数的值就是我们要传入的反序列化代码。

4.4K30

如何搭建一个属于自己的在线wiki文档系统?

MinDoc是一个在线的文档管理系统,该系统适用于团队、个人等使用。开发者最初的目的是为了便于公司内部使用,仿照看云开发。有laravel版本以及golang版本。...不过laravel版本部署起来相当麻烦,因为到搭建PHP开发环境还需要自己配置,加上精力有限,暂停了laravel的研发。...如何搭建 该系统可以根据用户自定义缓存驱动,系统支持的有file缓存,memcached,redis等缓存方式。只需要修改配置文件中的如下配置,将file修改为你的缓存驱动即可。...我这里使用的redis作为缓存驱动,下面介绍一下我安装redis的过程与使用。...修改数据库配置文件,配置文件在conf/app.conf文件中,填写自己的数据库配置信息即可.建议创建个新的账号,授予部分权限http://www.qqdeveloper.com/a/76.html,可以看考该文章创建数据库账号

10.3K20

如何快速搭建一个属于自己的在线文档管理系统

MinDoc是一个在线的文档管理系统,该系统适用于团队、个人等使用。开发者最初的目的是为了便于公司内部使用,仿照看云开发。有laravel版本以及golang版本。...不过laravel版本部署起来相当麻烦,因为到搭建PHP开发环境还需要自己配置,加上精力有限,暂停了laravel的研发。...如何搭建 该系统可以根据用户自定义缓存驱动,系统支持的有file缓存,memcached,redis等缓存方式。只需要修改配置文件中的如下配置,将file修改为你的缓存驱动即可。...我这里使用的redis作为缓存驱动,下面介绍一下我安装redis的过程与使用。...修改数据库配置文件,配置文件在conf/app.conf文件中,填写自己的数据库配置信息即可.建议创建个新的账号,授予部分权限http://www.qqdeveloper.com/a/76.html,可以看考该文章创建数据库账号

6.3K20

Laravel 7发行说明

引入 Laravel 框架或其组件,应始终使用版本约束,如 ^7.0,因为 Laravel 的主要版本确实包含非兼容性更改。我们会努力确保您可以在一天或更短的时间内更新到最新版本。...基于这些函数, Laravel 7 现在提供了一个更加面向对象的、更加流畅的字符串操作库。你可以使用 Str::of 方法创建一个 Illuminate\Support\Stringable 对象。...默认情况下,Laravel使用 mail 配置文件中的 default 选项指定的邮件驱动作为邮件驱动。然而,你可以通过 mailer 方法来使用特定的邮件驱动来发送邮件。...路由缓存速度改进由上游的 Symfony 的贡献者和 Dries Vints 贡献 Laravel 7 提供了一种新的方法,用于匹配使用 Artisan 命令 route:cache 缓存的已编译缓存路由...自定义桩代码 自定义桩代码由 Taylor Otwell贡献 Artisan 控制台的 make 命令用于创建各种类,例如控制器,任务,迁移和测试。 这些类是根据输入填充值使用「桩代码」生成文件的。

9K20

Laravel项目的性能优化

缓存配置 就如路由一样,你同样可以在应用中缓存配置文件。...提升性能命令 php artisan optimize 优化五:使用性能更好的Cache和Session驱动 Laravel默认是有缓存的,当你新建一个 Laravel 项目的时候Cache 和 Sessions...如果您信息不够及时,预加载是一种通过使用特定语法来减少发送到数据库的查询数量来提高 Eloquent 性能的方法。 更改基础查询以避免此性能问题。 您将只执行两个查询不是1001!...那么,将每次的查询结果缓存一小如何 ? 这个缓存组件的 * remember* 方法在未找到缓存的情况下将会先从数据库中获取数据,并缓存60分钟。...实现起来很简单,您可以创建一个新的数据库迁移并使用里面的方法来添加索引. 当然,索引不是您喜欢在哪建就直接创建一个就是了。

3.7K30

如何在Laravel5.8中正确地应用Repository设计模式

在本文中,我会向你展示如何在 Laravel 中从头开始实现 repository 设计模式。我将使用 Laravel 5.8.3 版,但 Laravel 版本不是最重要的。...repository 设计模式允许你使用对象,不需要了解这些对象是如何持久化的。本质上,它是数据层的抽象。...现在我们有了控制器和模型,是时候看看我们创建的迁移文件了。除了默认的 Laravel 时间戳字段外,我们的博客只需要 标题、内容 和 用户 ID 字段。 <?...DB_DATABASE=laravel_repository DB_USERNAME=root DB_PASSWORD=secret 当你更新了 .env 文件后我们需要清空缓存: php artisan...完成了这些后我们需要清空缓存: php artisan config:clear 就是这样 现在你已经成功实现了 repository 设计模式,不是很难吧?

4.2K31

提高Laravel应用性能方法详解

使用Laravel做开发是高效愉悦的体验。 通常,当你准备部署应用的时候,你可能会意识到应用也许会在真实环境下表现不佳。 需要明白的是,没有银弹。...缓存配置文件 laravel 的配置项分布在数十个配置文件中,在每次的请求中都将每个文件 including 进来很消耗性能。...为了将所有的配置文件都合并为一个,可以使用: php artisan config:cache 记住修改了配置文件后不会影响已有的配置文件缓存。为了刷新缓存,可以再次上述的命令。...如果你正在使用闭包,这是一个很好的机会将它们移动到控制器中,因为 artisan 命令在尝试编译绑定到闭包的路径不是正确的控制器方法时会抛出异常。...因为优化命令已经告诉 composer 创建一个优化的自动加载器。 JIT 编译器(即时编译器) PHP 并不是天然就被计算机理解的。你不能把它编译为字节码然后让计算机运行。

1.9K20

深入剖析 Laravel 服务提供者实现原理

服务提供者的功能是完成 Laravel 应用的引导启动,或者说是将 Laravel 中的各种服务「注册」到「Laravel 服务容器」,这样才能在后续处理 HTTP 请求使用这些服务。...服务提供者入门 创建自定义服务提供者 要创建自定义的「服务提供者」,可以直接使用 Laravel 内置的 artisan 命令完成。...不需要尝试在 register 方法中注册任何事件监听器、路由或者任何其他功能。否则,你可能会意外使用到尚未加载的服务提供器提供的服务。 如何理解这句话的含义呢?...我们可以从 文档 中得到解答: 如果你的服务提供商注册许多简单的绑定,你可能想使用 bindings 和 singletons 属性不是手动注册每个容器绑定。 <?...将服务提供者编译到清单文件缓存起来。

4.4K10

Laravel学习教程之View模块详解

前言 本文主要是给大家介绍了关于Laravel中View模块的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。...本文是基于Laravel 5.4版本的路由模块代码进行分析书写; 文件结构 View模块的文件格局及功能如下图所示: 视图化呈现时的大概流程: 1、通过view()方法的调用,开始视图的呈现; 2、首先...ob_start(); include $__path; ob_get_clean(); 5、如果是blade.php后缀,采用blade引擎; /【本文中一些MYSQL版本可能是以前的,MYSQL建议使用...5.7以上的版本】/ 这个引擎会主动作缓存处理,如果缓存文件未过期,则直接调用缓存文件,否则重新编译,并通过sha1生成缓存文件(位于storage/framework/views目录下); Blade...模板引擎(Blade)原理简析 Laravel 5.4 文档 前端 —— Blade模板

1.7K20

Laravel Mix 初探

将.vue组件样式提取到文件不是内联。...现在,当你修改webpack.mix.js文件监控下的静态资源或者 Laravel 的 PHP 文件,浏览器会即时刷新页面以响应你的更改。...它将运行所有的Mix 任务,并且会压缩文件输出。 基本例子 让我们用一些小的 CSS 和 JS 创建一个简单的 HTML。...常用的case 版本控制和清理缓存 开发者经常会使用在编译后的资源文件名加上时间戳或者是唯一的token作为版本号,强迫浏览器加载全新的资源文件不是缓存文件。...每次都要手动打版本号确实让人不太爽,但是你可以使用 Laravel Mix de version() 它会自动为所有编译文件文件名附加一个唯一的哈希值,从而实现更方便的缓存清除功能: mix.js('

4.3K60
领券