swoft框架,开发遇到基本坑

1.看好红色的部分,是提示注解带有单引号《'》的字符,检查下注解URL中是不是带有单引号《'》的符号,如果有,统一改成《""》双引号的。保存就可以了

Stack trace:

#0 /server/www/swoft/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php(446): Doctrine\Common\Annotations\AnnotationException::syntaxError('Expected PlainV...')

#1 /server/www/swoft/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php(1068): Doctrine\Common\Annotations\DocParser->syntaxError('PlainValue')

#2 /server/www/swoft/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php(1020): Doctrine\Common\Annotations\DocParser->PlainValue()

#3 /server/www/swoft/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.php(874): Doctrine\Common\Annotations\DocParser->Value()

#4 /server/www/swoft/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/DocParser.p in /server/www/swoft/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php on line 42

PHP Fatal error:  Uncaught Doctrine\Common\Annotations\AnnotationException: [Syntax Error] Expected PlainValue, got ''' at position 12 in class App\Controllers\TestController. in /server/www/swoft/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php:42

 

 

 

2.此问题是端口被占用,到swoft下的.en文件修改一个叫8181的端口,保存就行了

swoft框架,开发遇到基本坑_第1张图片


3.如果出现访问URL是对,但老是报404错误时,一定是你的注解头多一个或者多个*号了,一定是两个*号开头,多也不行少了不行。如这种情况

问题404

{"msg":"Route not found for \/test\/index","file":"\/server\/www\/swoft\/vendor\/swoft\/http-server\/src\/Router\/HandlerAdapter.php","line":49,"code":404}

问题所在

swoft框架,开发遇到基本坑_第2张图片

 

 

4.当老是提示控制器Controller命名重复时,这是要检查下该控制器命名空间导入是否正确,导入的Controller是App\Controllers;后面有s,如果情况

swoft框架,开发遇到基本坑_第3张图片
解决问题,命名空间是App\Controllers,   不是App\Controller

swoft框架,开发遇到基本坑_第4张图片
 

 

5. 提示导入@Inject类,如图

swoft框架,开发遇到基本坑_第5张图片
解决方案-》在controller中导入Inject(说准确点是,哪个类缺少inject类,在该类导入其类)

swoft框架,开发遇到基本坑_第6张图片
 

6.该错误提示该类下缺少导入Bean类,在该类导入就可以了,错误提示,如图

swoft框架,开发遇到基本坑_第7张图片
解决方案-》在该提示类导入Bean类,保存就OK

swoft框架,开发遇到基本坑_第8张图片
 

7.swoft验证器,一定要注意,use相关的组件,如@Number, ValidatorFrom...,所有提示Annotations都是告诉你最近的注解有误或者未use相关组件,每个错误控制台都有提示的,如图

 

swoft框架,开发遇到基本坑_第9张图片
提示找不到相关ValidatorFrom的组件,use 进来就可以了

swoft框架,开发遇到基本坑_第10张图片
 

 

8.执行url提示socket问题时,如果

swoft框架,开发遇到基本坑_第11张图片
 

该提示是告诉我们系统找不到这个路劲,要去检查下注解是否正确,像我这么粗心,要不是缺了/,就是prefix

swoft框架,开发遇到基本坑_第12张图片
 

9.所有看到AnnotationException都是注解问题,需要仔细看哪里有问题,想我就把$符号打成成@符号,如图

swoft框架,开发遇到基本坑_第13张图片
解决方案:把提示所有带有@符号错误的,都改成$符号,这是语法的错误,注意,php变量是$符号

 

10.总结java.net.SocketException: Connection reset几个解决方案,提示如下

swoft框架,开发遇到基本坑_第14张图片
此问题是提示路由有问题,访问不到,需要重新设置

 1.检查@Controller是否注解正确,正确写法是@Controller(prefix="/route") 或 @Controller("/route")

 2.检查@RequestMapping注解是不是正确,正确写法是@RequestMapping(route="search",method={RequestMethod::GET}),method没有大写,不要写成Method,这样就男女不分了

 

 

11.引入共有方法运行提示该方法是空是,解决方法是在引入方法上面加入@Inject()注解

分享:

你可能感兴趣的:(swoft)