```
## 命名空間
```
```
extend\email\Aindex.php
~~~
namespace email;
class Aindex
{
}
~~~
~~~
namespace email;
use Symfony\Component\OptionsResolver\OptionsResolver;
class Aindex
{
private $options;
/** * Email constructor. * * @param array $options */
public function __construct(array $options = [])
{
$this->setOptions($options);
}
/** * @return mixed */
public function getOptions()
{
return $this->options;
}
/** * @param array $options */
public function setOptions(array $options) //void
{
$this->options = $this->configureOptions($options, function (OptionsResolver $resolver) {
$resolver->setDefaults(['host' => 'smtp.example.org', 'username' => 'user', 'password' => 'password', 'port' => 25,]);
$resolver->setRequired(['host', 'username', 'password', 'port']);
$resolver->setAllowedTypes('host', 'string');
$resolver->setAllowedTypes('username', 'string');
$resolver->setAllowedTypes('password', 'string');
$resolver->setAllowedTypes('port', 'int');
});
}
/** * Configuration options. * * @param \Closure $closure * @param null $object * * @return array */
protected function configureOptions(array $options, $closure, $object = null)
{
$resolver = new OptionsResolver();
$closure($resolver);
if ($object) {
return $object->options = $resolver->resolve($options);
}
if (is_object($object)) {
return $object->options = $resolver->resolve($options);
}
if (is_string($object) && class_exists($object)) {
$object = new $object();
return $object->options = $resolver->resolve($options);
}
return $resolver->resolve($options);
}
}
~~~
```
```
application\copyy\controller\Index.php
~~~
namespace app\copyy\controller;
use library\Controller;
use think\Loader;
/**
* 應用入口
* Class Index
* @package app\index\controller
*/
class Index extends Controller
{
/**
* 入口跳轉鏈接
*/
public function index()
{
// $this->redirect('@admin/login');
dump('0123');
$email = new \email\Aindex();
//$email =new \Email([ 'host' => 'smtp.example.org', 'username' => 'user', 'password' => 'password', 'port' => 25,
//]);
dump($email);
}
}
~~~
~~~
namespace app\copyy\controller;
use library\Controller;
use think\Loader;
/**
* 應用入口
* Class Index
* @package app\index\controller
*/
class Index extends Controller
{
/**
* 入口跳轉鏈接
*/
public function index()
{
// $this->redirect('@admin/login');
dump('0123');
$s = [ 'host' => 'smtp.example.org', 'username' => 'user', 'password' => 'password', 'port' => '25'];
try{
$email = new \email\Aindex($s);
}catch(\think\Exception $e){
dump($e);
}
}
}
~~~
```
- extend加入模塊
- array_column() expects parameter 1 to be array, object given
- tp5.1安裝No input file specified.
- ROOT
- wechatDeveloper
- ThinkLibrary
- 語法錯誤: unexpected '?'
- Cannot use object of type stdClass as array
- Invalid argument supplied for foreach()
- 常量上傳
- 命名空間extend_email_Aindex
- Validate
- 'cross-env' 不是內部或外部命令,也不是可運行的程序
- 內置規則
- composer self-update
- cURL error 60: SSL certificate problem
- GuzzleHttp_Client_cookie_true
- cookies原始字符串轉換為數組
- 設置cookie
- apidoc
- 原生安裝tp5
- array_unique
- explode
- tp3修改密碼
- tp打印SQL
- tp5一對一關聯
- allowField
- array_column
- array_key_exists
- array_search
- tp5如何引入自定義函數
- with
- with閉包
- 綁定類
- composer A
- array_filter用回調函數過濾數組中的元素
- array_keys
- array_slice截取前兩個
- fetch_assoc
- in_array是否存在指定的值
- is_null
- join
- krsort對數組排序
- array-udiff
- shuffle
- substr
- unset刪除多維數組key
- 多維轉一維函數
- 數組變成字符串implode
- 數組分割
- 數組取差集
- 隨機函數array_rand
- 一維變二維
- 字符串包裹變量
- 字符串漢字截取mb_substr
- 直接使用composer命令
- 安裝vendor
- composer命令
- 復制安裝
- 空目錄安裝
- tp5cms
- tp5調試
- tp3調試
- TP5一對一關聯
- SQL語句
- 清空數據
- 去重
- 去重保留最小id
- 去重匹配除數字外數據
- 事務
- tp5pdf亂碼
- tp5column_tp3getFieldtrue
- php代碼在線測試,php在線執行
- parent::_initialize