首页 文章 精选 留言 我的

精选列表

搜索[快速入门],共10000篇文章
优秀的个人博客,低调大师

docker基础入门之二

一、docker文件系统: linuxFS包括boot file system 和 root file system boot file system (bootfs),包含bootloader和kernel,在系统启动完成后,kernel滞留内存,bootfs解除挂载; root file system(rootfs),包括类似/bin,/usr, /lib等目录,这些和kernel无关,这也是不同linux发行版本的差异所在; Linux FS Linux FS in Docker 传统Linux启动时,将rootfs设置为readonly并检查完整性,然后设置成read-write Docker在启动container的时候,也是把rootfs设置为readonly,然后通过aufs把一个read-write的文件系统挂载到rootfs之上,并且把下层文件系统设置成readonly,这样构建一个完整的操作系统; 二、Layer FS 对于每层readonly的FS,在docker中成为image 对于顶上read-write的FS,成为container 对于readonly中内容的修改,采用的是COW的技术,把文件复制到read-write层并修改,实际用户看到的是当前container层中的文件,image中的文件是不受影响的; Image: 除了base image之外,每一层image都有一个parent image 没有parent image的镜像叫base image 基于cow的技术,image部分是不会被修改的,因此container可以共享image的FS,提高了存储效率; storage dirver 除了默认的aufs之外,docker通过对于storage的抽象,可以支持一些其他的storage driver; 例如:vfs, devicemapper, btrfs 修改docker启动时候的参数设置,增加——storage-driver = {storage plugin}在配置文件中; docker hub: docker官方提供的用来共享image的平台; 镜像命名和版本管理: base image是docker官方提供的基础镜像; 普通镜像的命名规范{namespace}/{repository name}:{tag} namespace是docker hub的用户名,实际是起namespace作用 repository,类似于github的项目,例如ubuntu, mysql等; tag,表示版本信息,例如cp/mysql:5.5, tag是可选的,默认值是latest 查找Image: docker search {repository name} #默认是在docker hub上进心搜索 获取Image: docker pull {image name} #如果不指定tag的话,会把该image的所有tags都会download下来; 上传Image: 1、docker login #登录到docker hub中 2、把container通过docker commit的命令转化成一个Image 3、通过docker tag来命名新生成的Image 4、docker push到docker hub中; 三、基本操作: 运行container: 运行一个container的本事就是开启一个具有独立namespace的进程 docker 通过run的命令来启动一个container 运行一个container必须要指定一个image作为初始化的文件系统; sudo docker run [OPTIONS] IMAGE[:TAG] [COMMANG][ARG....] Image: 对于不存在的Image,Docker会自动会Registry里面下载对于的Image,然后再运行container COMMAND: command标志的是container中实际运行的首进程; 如果Image里面包含了CMD的指令,那么在启动container的时候,不需要指定command,否则会使用指向command来覆盖Image的cmd 前台运行or后台运行: 默认的Container是在前台运行的,会绑定command进程的STDIN、STDOUT、STDERR到console上; 可以通过-d的选项让container运行在后台; 如果是前台运行,也可以通过指定-a {STDOUT、STDIN、STDERR}选择需要绑定的IO 前后台切换;通过attach命令可以重新attache一个后台运行的container 在后台运行的情况下,run命令会返回一下UUID,唯一标识container 可以通过docker ps来查看container的UUID和运行信息 可以通过指定——name的方式来指定container的名字,名字必须唯一 inspect: 通过docker inspect {Container ID}来获取container的更多的信息,包括网络、volume,实际在HOST上的进程ID等信息; Log: 通过Logs命令可以看到Container中的Command所指向进程的STDOUT、STDERR数据; 环境变量: 通过-e参数,可以在运行container的时候添加环境变量; Network架构: 在Host主机上的一个veth{id}的虚拟网卡和一个container里面的eth0网卡一一映射 Host上的bridge负责把数据流在不同的veth间转发,实现网络的IO bridge(docker0)使用RFC1918私有网络,给每一个container分配ip 网络设置: 通过——net参数来修改container的网络设置,默认是bridge的方式; --net host none表示关闭container的网络连接 host表示使用主机的网络栈,这个时候host主机不会创建veth虚拟网卡映射 container:{name|id}, 使用另外一个container的网络栈 端口映射: Docker通过采用端口映射的方式,允许把内部container的服务端口暴露到外部; 使用-p参数可以指定需要暴露的container的内部端口,在不指定特定的Host的对应端口的情况下,docker会自动分配(49000-49900)在一个Host上的端口与其映射; 使用-p参数,表示暴露所有在Image中通过expose指定的端口; volume绑定: 通过-v参数,可以把Host上的一个目录绑定到container中,允许container对其进行读写; docker run -v /home/test:/vagrant -t ubuntu ls -al /vagrant 容器间通信: 通过link参数,把container的端口信息暴露到另一个container中,实现container之间的通信; docker run --link redis:db -t ubuntu sh -c "export"

优秀的个人博客,低调大师

docker基础入门之一

一、概述 1、传统虚拟化技术: 纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统; 硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Intel-VT技术等,具有更高的运行效率; 解决方案: 商业版解决方案:VMware vSphere、 VMware Fusion 开源解决方案:KVM、Xen 2、system-level虚拟化(container虚拟机技术): 不需要模拟硬件层; 共享同一个HOST OS的Kernal user space instance = Container 解决方案: LXC: OpenVZ: Docker: Imctfy:google开源的容器虚拟实现 3、容器虚拟化和传统虚拟化的区别: 传统虚拟化 容器虚拟化 创建速度 很慢 非常快 性能影响 通过对于硬件层的模拟,增加了系统调用链路 的环节,有性能损耗 共享Kernel,几乎没有性能损耗 资源消耗 很大 很小,一台机器可以轻松创建多个 Container 操作系统覆盖 支持Linux、windows、Mac等 仅仅支持Kernal所支持的OS 4、container核心技术cgroups,namespace,chroot: CGroups 限制容器的资源使用; Linux内核提供的限制,记录和隔离进程组所使用的资源,由Google工程师提出,后来整合进kernel; 通过不同的子系统(blkio、cpu、cpuacct等)来实现对不听资源使用的控制和记录; Namespace机制,实现容器间的隔离; pid,容器有自己独立的进程表和1号进程 net,容器有自己独立的network info ipc,在ipc通信时候,需要加入额外信息来标识进程;(进程间通信) mnt,每个容器有自己唯一的目录挂载; utc,每个容器有独立的hostname和domain chroot,隔离根文件系统: 将host os的某个目录隔离成container的根目录; 二、进入Docker的世界: dotCloud是docker公司的前身,专注于PaaS的云计算平台;可能是支持最广泛的PaaS平台; 使用container的概念来解决应用stack部署的难题; 定义:什么是docker 开源的应用容器引擎,方便打包发布应用到容器中; Go语音领域比较大型的应用; docker实现: docker是container技术的实现,最早使用LXC作为container的引擎,最新版本的docker使用libcontainer替换了lxc; 采用aufs文件系统来管理Image和container 基于C/S架构的实现,Server端使用UnixSocket,也可以切换到TcpProtocol; aufs文件系统: 1、advanced multi layer unification filesystem //先进的多层的联合文件系统 2、可以实现把多个不同目录的内容合并在一起; 3、允许read-only和read-write目录并存; docker中的aufs: docker使用aufs来实现分层的文件系统的管理; 只读部分定义为Image,可写部分是container Image类似一个单链表系统,每个Image包含一个指向parent image的指针; 没有parent Image的image是base Image docker hub: 类似于Github服务,用来分发Image 大量标准的Image,例如Tutum/Ubuntu, Tutum/Mysql docker的优点: 构建标准化的应用运行的环境; 良好的RestAPI的实现; Container的实现,更少的资源的使用,创建速度快; docker的局限性: 基于Linux64的,不能在32bit的环境下运行; GuestOS只能是Linux Base 隔离性相对于KVM等虚拟化技术有所欠缺; 采用cgroup的resource control对于cpu的度量很困难; container随用户进程的停止而销毁; docker和LXC的区别: docker更专注于部署,而LXC专注于进程的隔离; docker有更好的api的方便对于docker容器的管理; dockerfile让image的创建变得容易; 通过docker hub方便image的分享; docker的未来: 网络 安全性 容器引擎

优秀的个人博客,低调大师

Hadoop入门 -- 简介,安装,示例

(1) Hadoop简介 Hadoop是Apache基金会旗下开源项目,是一款开源的可靠、可扩展的分布式计算软件平台。 Hadoop可以看做是实现分布式计算的一个框架。可利用其提供的函数接口进行简单编程,对数据进行分布式处理。 分布式处理系统关键是保证系统的高可靠性(一般分布式系统均使用廉价,配置不高的机器作为节点,所以单一的节点出现问题的几率较高),Hadoop利用软件在应用层发现与处理错误。 Hadoop实现分布式处理的思想主要体现在MapReduce框架上,MapReduce框架是Hadoop中的一个模块。 Hadoop作为处理分布式数据的平台,实现了HDFS(Hadoop Distributed File System)文件系统,用于分布式数据的存储。 (2) Hadoop安装 Hadoop一般在linux系统下使用,若在Windows系统下需模拟Unix系统来实现。 Hadoop一般使用Java函数接口,进行Java编程,也有C语言等接口可用。 最通用的就是linux+java。 Hadoop作为分布式处理系统,不仅可以应用在多台机器上,它也提供了伪分布式模式供单台机器使用。 安装Hadoop需要一些辅助环境与软件,首先是java环境,安装JDK,linux环境下安装JDK主要是配置环境变量,可参考相关教程。 示例: 在/usr下建立文件夹java,将jdk安装文件复制到该文件夹下,解压tar -xzvf jdk文件名,接着配置环境变量。 其次是安装SSH服务,一般选择OpenSSH,SSH用于分布式系统节点之间的联系(分布式系统要实现数据之间的分布式处理,需进行通信,SSH就是为了实现此所必须的)。 安装SSH使用,Ubuntu系统下示例: $ sudo apt-get install ssh $ sudo apt-get install rsync ssh安装后要设置ssh的免密码登陆,具体完成的操作是密钥的生成,在分布式环境中使用时要将密钥分发到各台机器上,以便相互无密码访问。 ssh无密码登陆的操作: $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 第一句是生成无密码的密钥,第二句是将生成的密钥复制到密钥验证文件中,用于访问时加解密。 测试: $ ssh localhost 如果可以登陆到本地,即证明免密码登陆成功。 伪分布安装教程(用于自用试验性质) 1、下载软件包,将tar.gz软件包复制到安装目录(安装目录可以自己选择,一般选用/usr/local/下); 2、软件配置文件的配置,hadoop既然是分布式计算平台,就要规定它的数据节点,管理各子节点的机器,所以就要填一些网络地址,因为是伪分布模式,所以一般都是填写本地网络地址localhost。主要配置文件包括: conf/core-site.xml: <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> conf/hdfs-site.xml : <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> conf/mapred-site.xml : <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>此外还要配置JDK路径,供hadoop调用。 未完待续。。。

优秀的个人博客,低调大师

TinyPro SpringBoot 最新入门指南,解决开发者入门难题

本文由TinyPro中后台系统贡献者周泽龙原创。 在长达三个月的开发下,终于TinyPro的Springboot后端版本终于要问世了,在本期内容中我将带大家一步步去搭建整个后端的流程,也将带大家去探索对于最新版本的更改应该如何实现,以及如何使用本项目进行一个二次的开发和探索。 首先我们先要对于TinyPro项目进行一个整体的拉取,去到TinyPro的官方进行拉取,当我们获取到项目以后就可以进行开始今天的项目构建了。 接下来的流程就是对于前端i项目的搭建以及后端的springboot项目的搭建,最后再去介绍咱们新版本里面的一些特性和组件 1.前端部分的搭建 首先要确保咱们安装了Node.js、NPM、TinyCLI接下来就要正式初始化项目了首先我们进行初始化 (1)在命令行输入tiny init pro对项目进行一个初始化具体的流程可以看我的视频介绍 (2)接下来就让我们进入到我们的项目里面,tinyvue的前端代码里面我们首先进行一个项目的依赖的下载大家可以使用npm install进行项目依赖的下载。 (3)当我们项目依赖下载完成后就可以进入到一个启动流程了,使用npm start进行一个项目的启动启动后就会开启3031端口这样就可以看见项目的启动界面了! 到目前为止我们的前端项目就算正式启动成功了,接下来让我们一起开始启动后端项目 2.后端项目的搭建 首先我们需要确保自己的本地环境里面有jdk17,maven,mysql,redis以及一个自己喜欢的开发软件可以idea或者vscode 好了准备工作做好以后接下来就让我们进入后端的开发和后端二次开发的一个介绍并且我也将带着大家去了解springboot里面的一些设计和里面的一些函数的内容接下来开始吧 项目结构的介绍: 当进入到项目里面的时候我们最直观的可以看见项目的一个整体结构 (1)先介绍一下项目的一个配置文件,对于所有的springboot项目上来第一件事就算看配置文件application.properties文件这个文件里面包含了所有项目需要的配置比如:mysql,redis,Springjpa,mybatis-plus(项目里面没有使用,但是基本的配置都配置好了,也就兼容了喜欢使用mybatis-plus的同学)大家可以更具自己的数据库信息和redis进行配置,需要自己填写好数据库的用户名,端口和驱动地址,还有redis的配置信息比如主机地址和端口号 到这里的同学,那就恭喜大家数据服务的配置我们就是做好了,接下来就是对项目的依赖的下载,这块主要涉及到maven的使用,如果还,没有下载maven的同学记得赶快去下载 (2)接下来开始项目依赖的初始化过程,在项目启动的时候,我们需要先对项目的依赖包去官方的仓库里面下载(这块给大家一个提醒,如果下载过慢的同学记得去配置一下maven的国内镜像源进行下载和配置),敲入命令 mvn install进行一个项目依赖的下载。 如果到这里都执行成功,大家就可以正式的启动项目,正式启动项目之前我希望大家可以去查看自己jdk的配置是否是17,因为接下来的必须要使用jdk17了 (3)进入到TinyProApplication文件里面进行启动项目,在这之前需要确保启动了redis和mysql的服务,并且配置好了密码,然后启动项目以后我们就会看到一个提示: 这里就算证明项目的整体正式启动成功了,接下来就开始监听3000端口了。 项目启动成功以后就可以开始进行一个交互了,大家就可以进入到刚才启动的前端项目里面准备进行一个交互,账户和密码都是admin,这块是配置里面预先写好的,如果有人需要修改这个用户和角色名称,可以进到 DataInitializer文件里面找到user配置进行修改 3.二次开发 这个项目中支持二次开发的模块包括:权限管理,拒绝策略,以及用户的登录校验,初始化配置 (1)首先就是项目的权限管理的问题大家可以看见代码里面首先需要权限校验的接口上面都会有一个 @PermissionAnnotation这个注解里面配置的就是当前接口需要用户所拥有的权限,然后这块里面底层的实现细节在aspect这个目录里面,然后里面就是对于apo的一个使用。如果大家需要给某一个接口增加新的权限大家就可以直接在接口的上面进行一个使用然后写入具体要限制的细节 比如可以写: 这块就是要求用户必须要有menu::query::list这个权限才能进入到这个接口里面进行查询操作如果大家想更进一步了解到权限管理的细节,可以去看aop的使用java里面的切面编程 (2)接下来可以看拒绝的策略,首先对于接口拒绝策略的具体控制在配置文件里面,大家可以看到 这块就是一个拒绝策略的开关,如果大家想开始拒绝策略就可以直接输入true这个然后就会开启拒绝策略进行项目模式,目前是默认在演示模式里面 这个里面主要分为一个演示模式和一个项目模式,在项目模式里面大家可以自由的进行控制但是在演示模式里面,有很多的功能都被禁止了,所以大家要是不能使用的话就需要先查看是否是因为在演示模式里面导致的 (3)接下来就是用户的登录校验,大家首先要明白的一个流程就是用户首先要登录,只有登录成功以后才会将token放到redis里面,然后用户登录的校验就会先去redis里面进行查询,如果查询的到就会通过校验,如果redis里面没有当前用户人的信息就会进行一个拒绝的返回,然后就会跳转到前端的登录界面里面进行一个登录。具体就是拿一个拦截器进行拦截然后对每一个请求都进行校验只有登录过的才能进行项目的操作 (4)项目的初始化整个项目的初始化都在DataInitializer.java这个文件里面,如果后续需要进行一个项目的初始化调整,比如更改初始化的顺序以及在初始化的过程中想再加载一些资源都可以在这个文件里面进行增加 在这个run方法里面进行添加,这样项目在启动的时候就会先去加载项目里面的内容然后生成一个data文件夹的,这就标志着项目以及初始化过了,不需要再进行初始化,接下来每次的项目初始化都会先去看项目里面是否有data的目录如果存在就不走初始化的逻辑了 好了讲解完二次开发以后,接下来就要进入到docker的一个部署流程,在这个之前,大家可以更具的自己的情况去看是去买一个云服务器还是自己搭建一个虚拟机环境,然后进行配置,我在视频里面给搭建演示的就是在自己的虚拟机里面进行一个docker的部署和调用 4.docker部署 首先要了解在进行docker部署的时候,自己的容器文件里面的内容是否创建好了,以及对应的docker-compose.yml的一个配置 再检查完这些内容以后就要进入到我们的一个docker的部署流程环节,其实本质上也很简单就是进入到项目的文件夹目录里面,然后直接执行docker compose up -d这个命令以后,等待下载,但是下载的过程里面会有很多的问题比如下载过慢问题 (1)将项目的文件上传到服务器上面 然后进入当前目录大家可以看见,项目里面有两个文件一个是Dockerfile另一个是docker-compose.yml着两个文件是我们必须要的文件,进入进去看见 里面就是一些配置比如mysql的地址以及redis的地址,都是对应着我们即将启动的容器名称 (2)接下来就开始正式的启动docker-compose.yml文件,使用命令docker compose up -d启动成功以后就可以进行前端端口的配置映射到线上的docker地址,方便未来的开发 这个就是启动成功了,大家可以看映射的地址进行修改前端的配置了 5.本次参加开源之夏的感受和收获 在参加完这次的开源之夏以后,我最大的感受就是第一次有一个整齐的计划和老师还有别的学校的同学们可以一起开发一个软件,让我还没出社会的时候就已经拥有了独立开发的经验和经历。其次就是老师的辅导和社区的教导让我真的成长了很多,我特别感谢开源之夏和+OpenTiny社区对我的帮助,最后谢谢我的导师(真的很牛),他也很耐心的教我,特别感谢名字的话就不说了,不然以后有人烦他去了 谢谢大家我真的很珍惜这次机会,谢谢开源之夏,谢谢OpenTiny社区,谢谢导师,那我的这次开源之旅就结束,但是我相信只是暂时,我以后还会继续投身到开源里面,也希望可以帮助更多的人 关于OpenTiny 欢迎加入 OpenTiny 开源社区。添加微信小助手:opentiny-official 一起参与交流前端技术~ OpenTiny 官网:https://opentiny.design OpenTiny 代码仓库:https://github.com/opentiny TinyPro 源码:https://github.com/opentiny/tiny-pro 欢迎进入代码仓库 Star🌟TinyEngine、TinyVue、TinyNG、TinyCLI、TinyEditor~ 如果你也想要共建,可以进入代码仓库,找到 good first issue标签,一起参与开源贡献~

优秀的个人博客,低调大师

ElysiaJS —— 快速友好的 Bun Web 框架

ElysiaJS 是一个由 Bun 增强的 TypeScript 框架,具有端到端的类型安全、统一的类型系统和出色的开发人员体验。 以 3 个理念为基础: 性能 无需担心底层性能 简单 用简单的构建模块来创建抽象概念,而不是重复自己的工作 灵活性 你可以根据自己的需要定制大部分程序库 Elysia 是专为 TypeScript 设计的,你无需了解 TypeScript 也能使用 Elysia 从 TypeScript 中获益。该库能理解你的需求,并自动从你的代码中推断出类型。 Elysia 比 Express 快18 倍,由 Bun 运行时、静态代码分析和各种微优化增强。Elysia 能够在各种情况下表现出色,成为性能最好的 TypeScript 框架之一。 无需额外方法,只需返回值即可将数据发送回客户端。无论是普通字符串还是复杂的 JSON,只需返回值,Elysia 就会处理其余部分。 在 TypeBox 的支持下,Elysia 默认强制执行严格的类型验证,以确保类型的完整性。Elysia 可自动向 TypeScript 推导类型,从而创建统一的类型系统,就像静态类型语言一样。 Elysia 自动生成 OpenAPI 3.0 规范,以与跨多种语言的各种工具集成。由于符合 OpenAPI 标准,Elysia 可以使用 Swagger 插件在一行中生成 Swagger。

优秀的个人博客,低调大师

微软正开发快速「结束进程」功能

学习如何「强制退出应用程序/结束进程」是每一个 Windows 用户的必修课,相信 Windows 用户经常会遇到正在使用的程序突然冻结的情况,点击窗口中的「X」或使用快捷键「Alt + F4」都无法关闭程序,这个时候大家唯一的选择就是「结束进程」。 结束进程的方式多种多样,比如可以使用快捷键「CTRL + ALT + DELETE」或者「Windows + X」然后选择任务管理器,亦或是「CTRL + SHIFT + ESC」直接打开任务管理器来结束没有响应的进程。 不过上述这些方法都有一个缺点,那就是不够直观,也不符合用户日常操作的直觉,而且普通用户可能不一定知道或者会忘记这些快捷键。 别担心,外媒 Tom's Hardware 日前发现微软正在开发一个全新的 "结束任务" 选项,有望改进结束进程比较 “麻烦” 这个问题。用户未来可以直接在任务栏图标上右键点击无响应的程序(如下图),再选择 “结束任务” 选项就可以直接结束该程序的进程。 这个选项目前出现在了最新的 Windows 11 Build 23430 的 Dev 通道版本中,该选项需要在「设置 > 隐私和安全 > 面向开发者」菜单中手动开启(如下图)。不过这个选项暂时还无法正常使用,而且设置菜单还无法记住用户的选择,关闭设置菜单后又会重新恢复默认设置。 微软将这个选项隐藏这么深,并且放在面向开发者的选项中,似乎并不希望普通用户使用它。无论如何,即便这个功能正式推出,为了避免数据丢失或文件损坏,非必要不使用。

优秀的个人博客,低调大师

CakePHP 4.4.7 发布,PHP 快速开发框架

CakePHP 是一个运用了诸如 ActiveRecord、Association Data Mapping、Front Controller 和 MVC(model–view–controller) 等著名设计模式的开源 Web 框架,它以 Ruby on Rails 的概念为模型,并在 MIT 许可下进行分发。 CakePHP 4.4.7 已发布,这是 4.4 分支的维护版本,主要有如下改动: 修复了使用无效的__debugInfo()方法导出对象时出现的错误 改进了API文档 修复了缺少对cakephp/数据库的依赖 修复了FormHelper::radio()和FormHelper::multiCheckbox()中的回归 更新公告:https://github.com/cakephp/cakephp/releases/tag/4.4.7

优秀的个人博客,低调大师

CakePHP 4.4.6 发布,PHP 快速开发框架

CakePHP 是一个运用了诸如 ActiveRecord、Association Data Mapping、Front Controller 和 MVC(model–view–controller) 等著名设计模式的开源 Web 框架。CakePHP 用 PHP 编写,以 Ruby on Rails 的概念为模型,并在 MIT 许可下进行分发。 CakePHP 4.4.6 已发布,这是 4.4 分支的维护版本,主要有如下改动: 现在可以在集成测试用例、控制台和 HTML 异常呈现中正确呈现链式或嵌套异常。 ConsoleInputArgument 实例不再仅根据它们的选项值认为彼此相等。 改进typing和psalm的错误抑制。 FormData 现在接受 UploadedFileInterface 作为文件。 修复了使用条件索引的表的 MySQL 模式反射,现在忽略索引的表达式部分。 更新了使用 https 而不是 http 的链接。 改进了 CI 配置安全性。 更新公告:https://github.com/cakephp/cakephp/releases/tag/4.4.6

优秀的个人博客,低调大师

CakePHP 4.4.5 发布,PHP 快速开发框架

CakePHP 是一个运用了诸如 ActiveRecord、Association Data Mapping、Front Controller 和 MVC(model–view–controller) 等著名设计模式的开源 Web 框架。CakePHP 用 PHP 编写,以 Ruby on Rails 的概念为模型,并在 MIT 许可下进行分发。 CakePHP 4.4.5 已发布,这是 4.4 分支的维护版本,主要有如下改动 改进了对 SMTP 电子邮件传输中身份验证错误的处理。 重新启用:在开发错误页面上的堆栈帧中显示参数。 改进 API 文档。 修复了diffForHumans()不根据当前语言环境翻译文本的问题。 ValidatableInterface已弃用。 完整changelog。

优秀的个人博客,低调大师

CakePHP 4.4.3 发布,PHP 快速开发框架

CakePHP 是一个运用了诸如 ActiveRecord、Association Data Mapping、Front Controller 和 MVC(model–view–controller) 等著名设计模式的开源 Web 框架。CakePHP 用 PHP 编写,以 Ruby on Rails 的概念为模型,并在 MIT 许可下进行分发。 CakePHP 4.4.3 已发布,这是 4.4 分支的维护版本,修复了几个社区报告的问题 修复了文件断言方法中对 null 的潜在方法调用。 改进了与 PHP 8.2 的兼容性。 如果表配置了选项然后被模拟,TableLocator::get() 不再抛出错误。 更新了 CI 配置以使用 Windows 2022 映像。 修复了未正确设置 umask 的 Folder::create() 中的回归。 与 FileEngine 一起使用的缓存键现在是 URL 编码的。 这会将缓存键中的有效字符与其他引擎对齐。 对于以前使用字母数字范围之外的字符的应用程序,它可能会导致缓存未命中。 删除了多余的类类型检查。 修复了 ResultSet 索引在启用 xdebug 时因循环内抛出的异常而发生变异。 TableLocator 现在可以更好地处理通过命名空间类名获取表。 不推荐使用 Database\Query 中未使用的属性。 更新公告:https://github.com/cakephp/cakephp/releases/tag/4.4.3

优秀的个人博客,低调大师

CakePHP 4.3.8 发布,PHP 快速开发框架

CakePHP 是一个运用了诸如 ActiveRecord、Association Data Mapping、Front Controller 和 MVC(model–view–controller) 等著名设计模式的开源 Web 框架。CakePHP 用 PHP 编写,以 Ruby on Rails 的概念为模型,并在 MIT 许可下进行分发。 CakePHP 4.3.8 正式发布,这是 4.3 分支的一个维护版本,修复了几个社区报告的问题,具体更新内容如下: 错误修正 改进了文档块中的示例 修正了 BelongsToMany 中缺失的 bindingKey 用法 修正了当 cookie 数据包含无效的 base64 编码数据时来自 CsrfProtectionMiddleware 的 TypeError 改进了对 cookie 解析中数字键的处理。 Fixed missing usage of bindingKey in associations generated by BelongsToMany. 更多详情可查看:https://github.com/cakephp/cakephp/releases/tag/4.3.8

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册