热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RubyPHP:支持swoole和普通CLI,使用Thinkphp语法规则

支持swoole和普通CLI,使用Thinkphp语法规则,亮点:轻量级、高并发,点击链接下载RubyPHP框架什么是swoole?swoole是PHP的一个插件,点击以下链接安装

支持swoole和普通CLI,使用Thinkphp语法规则,亮点:轻量级、高并发,点击链接下载 RubyPHP框架

什么是swoole?

swoole是PHP的一个插件,点击以下链接安装,区别于普通PHP的地方在于:类的实例化不必等到每次请求的时候创建,mysql和redis使用长连接,不必每次请求的时候再去创建。在高并发的场景下可与java相媲美。

开始旅程

  1. 引入框架 将RubyPHP文件夹放在服务器上的任意目录,如:/data/user/fanghailiang/swoole/文件夹中,在项目入口文件引入框架 index.php:
define("FRAMEWORK","/data/user/fanghailiang/swoole/RubyPHP/");
require(FRAMEWORK."index.php");
  1. 配置路由 路由是设置url路径和控制器中的模块、方法的对应关系,default代表根路由,RubyPHP支持正则路由 config/route.php
$config['route'] = array(
	'default'						=> 'default/welcome:index',
);
  1. 配置数据库连接 之所以配置两个mysql连接,是因为本框架支持mysql主从分离 config/mysql.php
global $config;

$config['mysql'] = array(
	'prefix' => '',
	'master' => array(
		'host' => '',
		'port' => '',
		'username' => '',
		'password' => '',
		'database' => '',
	),
	'slaver' => array(
		'host' => '',
		'port' => '',
		'username' => '',
		'password' => '',
		'database' => '',
	),
);

config/redis.php

global $config;
$config['redis'] = array(
	//'url路径'=>'模块路径:方法'
	'enable' => true, //使用redis缓存
	'host' => '127.0.0.1', //主机
	'port' => 6379, //端口号
	'password' => '', //密码
	'expire' => 300, //过期时间(秒)
	'database' => 7, //redis缓存使用的数据库
);
  1. 创建控制器 controller/default/welcome.php 不用写注释了,完全是ThinkPHP的语法,唯一改动的是I方法变成了$this->I的形式
class Welcome extends Controller {
	public function index(){
		S("age", 12, 120);
		$age = S("age");
		$info = M("admin_users")->find($this->I("id"));
		$this->assign("age", $age);
		$this->assign("user", $info['realname']);
		$this->assign("title", "RubyPHP");
		$this->display("index");
	}
}
  1. 创建视图 使用Smarty的语法规则,分界符默认为{:} vide/index.html
{:$user}你好,您的年龄是{:$age},欢迎来到{:$title}

项目运行

  1. swoole运行 命令行输入:php index.php -p 9501,-p指定使用的端口 nginx 设置反向代理
server                                                                                                                                                                      
    {   
        listen 80; 
        #listen [::]:80;
        server_name swoole.fanghailiang.companyclub.cn ;

        include none.conf;
    
        location / { 
            proxy_pass http://localhost:9501;
        }   
    }

url输入 http://swoole.fanghailiang.companyclub.cn/?id=4即可访问 运行效果图 2. cli模式运行 吧原来的控制器移到scripts目录下 controller/scripts/default/welcome.php

class Welcome extends Controller {
	public function index(){
		$this->assign("title", "RubyPHP");
		$this->display("index");
	}
}

命令行运行:php index.php default/welcome:index

相关问题

  1. 如何在后台运行? nohup php index.php -p 9501 &
  2. mysql或redis长连接被中断如何处理? 解决思路是捕捉长连接失败的异常,然后重新建立长连接。待后续版本补足这个缺点。


推荐阅读
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • nginx+多个tomcat
    学习nginx的时候遇到的问题:nginx怎么部署两台tomcat?upstream在网上找的资源,我在nginx配置文件(nginx.conf)中添加了两个server。结果只显 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • 1、etcnginxconf.ddefault.conf,添加如下信息:location{try_files$uri$urirouter;rootho ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
author-avatar
我的未来不叫未来_743
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有