php 7是否支持类属性的类型提示?
我的意思是,不仅仅是针对建立者/吸气者,而是针对房产本身.
就像是:
class Foo {
/**
*
* @var Bar
*/
public $bar : Bar;
}
$fooInstance = new Foo();
$fooInstance->bar = new NotBar(); //Error
Run Code Online (Sandbox Code Playgroud) 我只是从laravel开始,想要了解这一点......
让我们说我们的应用程序中有一个类:
namespace App\Tests;
class MyTest{
public function sayHello($name){
echo "Hello, $name!";
}
public static function anotherTest(){
echo "another test...";
}
}
Run Code Online (Sandbox Code Playgroud)
创建一个Facade和一个服务提供者而不仅仅是使用它有什么好处
use App\Tests\MyTest;
//... controller declarations here ....
public function someaction(){
$mt = new MyTest();
$mt->sayHello('John');
//or
MyTest::anotherTest();
}
//... etc...
Run Code Online (Sandbox Code Playgroud) 我有一个具有以下结构的项目:
- src
----/ /* Relevant files */
- tests
----/ /* Irrelevant files */
- composer.json
- phpunit.xml
Run Code Online (Sandbox Code Playgroud)
该项目已在每次提交时发送给 packagist。但是,它正在发送测试文件。
我想忽略tests文件夹,这样当有人打电话时,作曲家就不会下载不必要的文件composer require my/package
这是我的composer.json 的内容:
{
"name": "my/package",
"description": "...",
"type": "library",
"license": "MIT",
"require": {
"php": ">=7"
},
"require-dev": {
"phpunit/phpunit": ">=5.4"
},
"autoload": {
"psr-4": {
"MyProject\\": "./src"
}
}
}
Run Code Online (Sandbox Code Playgroud) 假设我有以下属性声明
#[Attribute(Attribute::TARGET_METHOD | Attribute::IS_REPEATABLE)]
class Route
{
public function __construct(
public string $path,
public ?string $method = null,
public ?string $alias = null
)
{}
}
Run Code Online (Sandbox Code Playgroud)
我在一些控制器方法中使用它,如下所示:
class Controller
{
#[Route('/index/')]
#[Route('/home/', alias: 'home')]
public function index()
{
...
}
#[Route('/create/', 'POST')]
public function create(Request $request)
{
//...
}
}
Run Code Online (Sandbox Code Playgroud)
我如何获取这些属性实例并读取它的属性?
我知道可以使用变量作为名称来访问对象属性/方法
例:
$propName = 'something';
$something = $object->$propName;
Run Code Online (Sandbox Code Playgroud)
是否可以执行相同的w /常量或静态属性?
我试过了:
$ constName ='MY_CONST';
MyCLass::{$constName};
Run Code Online (Sandbox Code Playgroud)
和
$obj::{$constName};
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何工作,我无法在任何地方找到它.
如何使用laravel 5.2 Schema Builder创建唯一约束?
Schema::create('my_pivot', function(Blueprint $table){
$table->increments('id');
$table->integer('table1_id')->unsigned();
$table->integer('table2_id')->unsigned();
$table->foreign('table1_id')->references('id')->on('table1');
$table->foreign('table2_id')->references('id')->on('table2');
//Here i need to add an unique constraint to 'key1' + 'key2'
});
Run Code Online (Sandbox Code Playgroud) 我正在从头开始编写一个安静的api库,现在我遇到了一个常见的问题:从请求中读取multipart/form-data中的原始数据.
对于POST请求,我知道我应该使用$_FILE/ $_POSTvariables.但是如果除了POST之外还有PUT,PATCH或其他任何请求类型呢?
php://input?注意:我搜索了输入格式以及如何阅读它,我只想访问RAW数据.
我制作了一个简单的测试应用程序,用于使用 java amqp lib ( implementation 'com.rabbitmq:amqp-client:5.7.1')读取 RabbitMQ 队列。
但是由于 Android 权限(套接字),我在连接到我的兔子服务器时遇到了问题
这是错误消息:
W/System.err: java.net.SocketException: socket failed: EPERM (Operation not allowed)
我已经尝试添加android.permission.INTERNET到清单中,但没有成功。这是它的样子:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.androidwebsocket">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
编辑
根据要求,这里是完整的错误堆栈跟踪:https : //pastebin.com/WAh2B4rP
以及触发此错误的代码:
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername("myuser");
factory.setPassword("mypass");
factory.setVirtualHost("/");
factory.setHost("myhost.io");
factory.setPort(5672);
connection = factory.newConnection(); //Error triggers here
channel = connection.createChannel();
Run Code Online (Sandbox Code Playgroud) php ×7
attributes ×2
laravel ×2
android ×1
composer-php ×1
connection ×1
httprequest ×1
java ×1
laravel-5 ×1
laravel-5.2 ×1
object ×1
packagist ×1
php-7 ×1
php-8 ×1
rabbitmq ×1
rest ×1
sockets ×1
type-hinting ×1
variables ×1