Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yuenblue
PhpDemo
提交
9cafa2fa
P
PhpDemo
项目概览
yuenblue
/
PhpDemo
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PhpDemo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9cafa2fa
编写于
3月 28, 2024
作者:
Y
yuenblue
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of gitcode.net:yuencczzy/phpdemo
上级
96a990bc
958d48c9
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
114 addition
and
28 deletion
+114
-28
README.md
README.md
+2
-0
demobasic/innerclass.php
demobasic/innerclass.php
+25
-0
demophpunit/src/app/User.php
demophpunit/src/app/User.php
+13
-1
demophpunit/tests/DemoTest.php
demophpunit/tests/DemoTest.php
+14
-1
demotp6/.example.env
demotp6/.example.env
+17
-1
demotp6/app/AppService.php
demotp6/app/AppService.php
+24
-23
demotp6/app/model/User.php
demotp6/app/model/User.php
+12
-1
demotp6/tests/DemoTp6.php
demotp6/tests/DemoTp6.php
+7
-1
未找到文件。
README.md
浏览文件 @
9cafa2fa
...
...
@@ -10,6 +10,8 @@ composer create-project thinkcmf/thinkcmf=~6.0 demothinkcmf6
composer create-project thinkcmf/thinkcmf=~8.0 demothinkcmf8
ln -s /usr/local/etc/php/8.2/ php82
/usr/local/opt/mysql@5.7/bin/mysqld_safe --datadir
\=
/usr/local/var/mysql
./vendor/bin/phpunit -dxdebug.mode=debug -dxdebug.start_with_request=yes -dxdebug.client_host=localhost -dxdebug.client_port=9003 tests/DemoTest.php
php -dxdebug.mode=debug -dxdebug.start_with_request=yes -dxdebug.client_host=localhost -dxdebug.client_port=9003 index.php
php ../phpunit-10.5.13.phar tests/DemoTest.php
...
...
demobasic/innerclass.php
0 → 100644
浏览文件 @
9cafa2fa
<?php
// class Outer {
// // 外部类的成员变量和方法
// class Inner {
// // 内部类的成员变量和方法
// }
// }
// class Outer{
// public $aa=null;
// function __construct()
// {
// $this->aa='aaaa';
// }
// function say(){
// print $this->aa;
// }
// class Inner{
// }
// }
// $outer = new Outer();
// $outer->say();
\ No newline at end of file
demophpunit/src/app/User.php
浏览文件 @
9cafa2fa
<?php
namespace
app
;
enum
UserState
:
int
{
case
Aa
=
0
;
case
Bb
=
1
;
case
Cc
=
2
;
public
function
label
():
string
{
return
match
(
$this
)
{
static
::
Aa
=>
"啊啊啊Aa"
,
static
::
Bb
=>
"哦哦哦Bb"
,
static
::
Cc
=>
"uuuCc"
,
};
}
}
class
User
{
function
say
()
{
print
"hello"
;
print
UserState
::
Aa
->
label
()
;
}
}
\ No newline at end of file
demophpunit/tests/DemoTest.php
浏览文件 @
9cafa2fa
...
...
@@ -2,11 +2,17 @@
use
PHPUnit\Framework\TestCase
;
use
app\User
;
use
app\UserState
;
use
Monolog\Level
;
use
Monolog\Logger
;
use
Monolog\Handler\StreamHandler
;
use
PgSql\Lob
;
use
function
PHPUnit\Framework\assertTrue
;
class
DemoTest
extends
TestCase
{
function
tearDown
():
void
...
...
@@ -16,12 +22,19 @@ class DemoTest extends TestCase
public
function
testAaa
(){
$user
=
new
User
();
$user
->
say
();
print
UserState
::
Cc
->
name
;
$aa
=
11
;
}
function
testInnerClass
(){
}
function
testLog
()
{
// create a log channel
$log
=
new
Logger
(
'name'
);
$log
->
pushHandler
(
new
StreamHandler
(
'php://stdout'
,
Level
::
Warning
)
);
$log
->
pushHandler
(
new
StreamHandler
(
'php://stdout'
),
Level
::
Warning
);
// add records to the log
$log
->
warning
(
'Foo'
);
...
...
demotp6/.example.env
浏览文件 @
9cafa2fa
APP_DEBUG = true [APP] DEFAULT_TIMEZONE = Asia/Shanghai [DATABASE] TYPE = mysql HOSTNAME = 127.0.0.1 DATABASE = test USERNAME = username PASSWORD = password HOSTPORT = 3306 CHARSET = utf8 DEBUG = true [LANG] default_lang = zh-cn
\ No newline at end of file
APP_DEBUG = false
[APP]
DEFAULT_TIMEZONE = Asia/Shanghai
[DATABASE]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = username
PASSWORD = password
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
[LANG]
default_lang = zh-cn
\ No newline at end of file
demotp6/app/AppService.php
浏览文件 @
9cafa2fa
<?php
declare
(
strict_types
=
1
);
declare
(
strict_types
=
1
);
namespace
app
;
...
...
@@ -9,6 +10,7 @@ use Monolog\Handler\StreamHandler;
use
think\facade\Db
;
use
think\Service
;
use
think\facade\Event
;
/**
* 应用服务类
*/
...
...
@@ -31,30 +33,29 @@ class AppService extends Service
// echo "??????";
// });
// Event::subscribe("app\subscribe\Mysql");
$logger_sql
=
new
Logger
(
"logger_sql"
);
$handler
=
new
StreamHandler
(
'php://stdout'
,
Logger
::
WARNING
);
$dateFormat
=
"Y-m-d, H:i:s"
;
$output
=
"%datetime% > %level_name% > %message%
\n
"
;
// $output = "%datetime% > %level_name% > %message% %context% %extra
%\n";
$formatter
=
new
LineFormatter
(
$output
,
$dateFormat
)
;
$handler
->
setFormatter
(
$formatter
);
$logger_sql
->
pushHandler
(
$handl
er
);
if
(
env
(
"APP_DEBUG"
)
==
true
)
{
$logger_sql
=
new
Logger
(
"logger_sql"
);
$handler
=
new
StreamHandler
(
'php://stdout'
,
Logger
::
WARNING
)
;
$dateFormat
=
"Y-m-d, H:i:s
"
;
$output
=
"%datetime% > %level_name% > %message
%
\n
"
;
// $output = "%datetime% > %level_name% > %message% %context% %extra%\n"
;
$formatter
=
new
LineFormatter
(
$output
,
$dateFormat
);
$handler
->
setFormatter
(
$formatt
er
);
$logger_sql
->
pushHandler
(
$handler
);
$this
->
app
->
bind
(
'logger_sql'
,
$logger_sql
);
Db
::
listen
(
function
(
$sql
,
$runtime
,
$master
)
{
// 进行监听处理
// file_put_contents("php://stdout","==============={$sql}===========\r\n");
/**
* @var Logger
*/
$log
=
$this
->
app
->
logger_sql
;
$master
=
$master
?
$master
:
'default'
;
$log
->
warning
(
"
{
$sql
}
Take
{
$runtime
}
By
{
$master
}
"
);
});
$this
->
app
->
bind
(
'logger_sql'
,
$logger_sql
);
Db
::
listen
(
function
(
$sql
,
$runtime
,
$master
)
{
// 进行监听处理
// file_put_contents("php://stdout","==============={$sql}===========\r\n");
/**
* @var Logger
*/
$log
=
$this
->
app
->
logger_sql
;
$master
=
$master
?
$master
:
'default'
;
$log
->
warning
(
"
{
$sql
}
Take
{
$runtime
}
By
{
$master
}
"
);
});
}
}
public
function
boot
()
...
...
demotp6/app/model/User.php
浏览文件 @
9cafa2fa
<?php
namespace
app\model
;
use
think\Model
;
enum
UserState
:
int
{
case
Inactive
=
0
;
case
Activated
=
1
;
case
Frozen
=
2
;
public
function
label
():
string
{
return
match
(
$this
)
{
static
::
Inactive
=>
"未激活"
,
static
::
Activated
=>
"已激活"
,
static
::
Frozen
=>
"已冻结"
,
};
}
}
final
class
User
extends
Model
{
...
...
demotp6/tests/DemoTp6.php
浏览文件 @
9cafa2fa
...
...
@@ -2,6 +2,7 @@
namespace
think
;
use
app\model\User
;
use
app\model\UserState
;
use
PHPUnit\Framework\TestCase
;
use
think\facade\Cache
;
use
think\facade\Config
;
...
...
@@ -38,11 +39,16 @@ class DemoTp6 extends TestCase{
$cc
=
env
(
"database.HOSTPORT"
);
var_dump
(
$bb
,
$cc
);
}
function
test_select_user
()
{
$user
=
User
::
find
(
3
);
print
User
::
class
;
print
UserState
::
from
(
$user
->
status
)
->
label
();
}
function
test_createData
()
{
$user
=
new
User
();
$user
->
username
=
'aaaa'
;
$user
->
password
=
'bbbb'
;
$user
->
status
=
UserState
::
Activated
->
value
;
$user
->
save
();
}
function
test_modal
()
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录