首页 理论 架构 工程 文档 白皮书 著作 研究 案例 下载 博客 关于 开始使用 →

第160章 PHP OOP工程基础

第160章 PHP OOP工程基础

160.1 本章提出背景

ICAI 的理论模型最终必须进入可执行的软件系统。理论中的元素、对象、属性、关系、状态、方法和行为如果只停留在概念层面,就不能形成真正能够运行、存储、修改和执行的认知系统。

PHP OOP(Object-Oriented Programming,面向对象编程)提供了一种将理论对象映射为程序对象的工程机制。

在 ICAI 工程中,可以建立如下基本映射:

理论认知元素 → PHP Class → PHP Object → Property → Method → Runtime Operation

进一步形成:

对象定义 → 对象实例化 → 属性加载 → 方法执行 → 状态变化 → 结果反馈

因此,PHP OOP 不是 ICAI 理论本身,而是 ICAI 理论进入软件运行环境所使用的工程实现基础。


160.2 Class:类

**Class(类)**是对象的结构定义。

在 ICAI 工程中,一个类可以理解为某一类认知对象的程序结构描述。它规定对象具有什么属性、具有什么方法,以及这些属性和方法之间如何共同形成对象的基本运行能力。

例如,可以定义一个最基本的认知对象类:

class CognitiveObject
{
    public $id;
    public $name;
    public $type;

    public function getName()
    {
        return $this->name;
    }
}

这里的 CognitiveObject 就是一个 Class。

Class 本身不是一个正在运行的具体对象,而是对象的结构定义。

因此:

Class = 对象结构定义

而:

Object = Class 的实际运行实例

在 ICAI 中,可以进一步建立:

CognitiveObject
        ↓
对象结构定义
        ↓
具体对象实例

例如:

CognitiveObject
        ↓
Egg Object

类规定“什么样的对象可以被建立”,对象则表示“已经被建立出来的具体对象”。


160.3 Object:对象

**Object(对象)**是 Class 实例化之后形成的运行实体。

例如:

$egg = new CognitiveObject();

此时:

CognitiveObject
        ↓
       new
        ↓
$egg

$egg 就是一个 Object。

对象可以拥有自己的属性值,并可以调用类所定义的方法。

例如:

$egg->name = 'egg';
$egg->type = 'food';

此时程序中的对象已经具有具体状态:

Object
├── id
├── name = egg
└── type = food

ICAI 的核心工程意义在于:理论中的“对象”必须最终具有程序运行时对应的对象实体。

因此可以建立:

认知对象
    ↓
对象定义
    ↓
Class
    ↓
实例化
    ↓
Object
    ↓
属性与状态
    ↓
方法与行为

这使理论对象从静态概念转化成为可以被程序操作的运行对象。


160.4 Property:属性

**Property(属性)**是对象内部用于保存对象特征、状态和数据的结构。

例如:

class CognitiveObject
{
    public $id;
    public $name;
    public $type;
    public $state;
}

这里:

id
name
type
state

都是对象属性。

对象建立以后,不同对象可以拥有不同的属性值:

$egg = new CognitiveObject();

$egg->id = 1;
$egg->name = 'egg';
$egg->type = 'food';
$egg->state = 'intact';

形成:

Egg Object
├── id = 1
├── name = egg
├── type = food
└── state = intact

属性承担的是对象信息保存功能

在 ICAI 中,属性可以进一步对应理论中的对象特征:

对象
├── 身份属性
├── 类型属性
├── 物理属性
├── 状态属性
├── 空间属性
├── 关系属性
└── 认知属性

因此,Property 是理论对象进入程序内部之后的重要数据载体。


160.5 Method:方法

**Method(方法)**是定义在 Class 内部、用于执行对象操作的程序行为。

例如:

class CognitiveObject
{
    public $name;
    public $state;

    public function changeState($state)
    {
        $this->state = $state;
    }
}

这里:

changeState()

就是一个 Method。

调用:

$egg->changeState('broken');

对象状态便发生变化:

state = intact
       ↓
changeState()
       ↓
state = broken

因此,Property 主要承担:

保存对象信息

Method 主要承担:

执行对象操作

二者形成:

Object
├── Property → 保存
└── Method   → 操作

这对于 ICAI 尤其重要。

因为认知系统并不是只有静态数据,还必须能够执行:

识别
→ 匹配
→ 判断
→ 修改
→ 记录
→ 学习
→ 执行

这些过程最终都必须通过程序中的 Method 执行。


160.6 Constructor:构造方法

**Constructor(构造方法)**是在 Object 创建时自动执行的方法。

PHP 中通常使用:

__construct()

定义构造方法。

例如:

class CognitiveObject
{
    public $id;
    public $name;
    public $type;

    public function __construct($id, $name, $type)
    {
        $this->id = $id;
        $this->name = $name;
        $this->type = $type;
    }
}

创建对象:

$egg = new CognitiveObject(
    1,
    'egg',
    'food'
);

对象建立以后,其初始结构已经被设置:

Object
├── id = 1
├── name = egg
└── type = food

Constructor 的工程作用就是完成:

对象创建 → 初始数据注入 → 初始状态建立

因此可以表示为:

new Class()
     ↓
Constructor
     ↓
Object Initialization
     ↓
可运行对象

在 ICAI 中,构造方法可以承担认知对象进入运行环境时的初始化工作。

例如:

认知对象定义
      ↓
建立对象
      ↓
初始化身份
      ↓
初始化属性
      ↓
初始化状态
      ↓
进入认知运行环境

160.7 Encapsulation:封装

**Encapsulation(封装)**是面向对象工程的重要原则。

封装的核心思想是:

对象内部的数据和操作应该由对象自身进行管理,而不是让系统中的任何模块随意修改对象内部结构。

例如:

class CognitiveObject
{
    private $state;

    public function setState($state)
    {
        $this->state = $state;
    }

    public function getState()
    {
        return $this->state;
    }
}

这里:

private $state;

表示 state 不允许外部直接访问。

外部程序需要通过:

setState()

或者:

getState()

与对象进行交互。

形成:

外部系统
    ↓
Object Interface
    ↓
Method
    ↓
内部 Property

而不是:

外部系统
    ↓
直接修改内部数据

这能够保证对象内部规则不会轻易被外部代码破坏。


160.8 OOP六个基础要素的统一关系

本章六个基础概念可以统一为:

Class
  ↓
定义对象结构
  ↓
Object
  ↓
拥有 Property
  ↓
通过 Method 执行操作
  ↓
Constructor 建立初始状态
  ↓
Encapsulation 管理内部结构

可以进一步形成 ICAI 的工程映射:

OOP概念 工程含义 ICAI对应
Class 对象结构定义 认知对象类型
Object 具体运行实例 具体认知对象
Property 对象数据 属性、状态、特征
Method 对象操作 认知操作、对象操作
Constructor 对象初始化 认知对象建立
Encapsulation 内部结构保护 对象自主状态管理

160.9 从OOP基础进入ICAI对象工程

当上述六个基础概念建立以后,ICAI 就可以开始建立自己的对象体系。

例如:

Element
   ↓
Object
   ↓
Attribute
   ↓
Relation
   ↓
State
   ↓
Scene
   ↓
Method
   ↓
Behavior

这些理论概念不能全部作为普通数组处理,而应该逐步形成具有明确职责的程序对象。

例如:

class Element
{
    protected $id;
    protected $value;

    public function getValue()
    {
        return $this->value;
    }
}

进一步:

class CognitiveObject
{
    protected $id;
    protected $attributes;
    protected $state;
    protected $relations;

    public function addAttribute($attribute)
    {
        $this->attributes[] = $attribute;
    }

    public function setState($state)
    {
        $this->state = $state;
    }
}

这样,理论对象就开始形成真正的程序对象结构。


160.10 OOP运行模型

ICAI 的基础 OOP 运行过程可以表示为:

Class定义 → Object创建 → Constructor初始化 → Property形成 → Method执行 → Object状态改变

如果加入认知系统:

Element进入系统 → Object形成 → Attribute建立 → Relation建立 → State建立 → Method执行 → Behavior产生 → Feedback返回

因此,PHP OOP 在 ICAI 中承担的是一个非常明确的角色:

PHP OOP不是认知理论,而是把认知理论中的对象、属性、状态、方法和行为转化为可创建、可存储、可调用、可修改程序实体的工程基础。


160.11 本章小结

第160章建立 ICAI PHP OOP 工程的最基础结构。

Class负责定义对象结构;Object负责形成具体运行实体;Property负责保存对象信息;Method负责执行对象操作;Constructor负责建立对象初始状态;Encapsulation负责控制对象内部结构和外部访问方式。

六者共同形成:

Class → Object → Property → Method → Constructor → Encapsulation

进一步映射到 ICAI:

理论对象 → 程序类 → 运行对象 → 属性数据 → 方法操作 → 状态变化

由此,ICAI 理论开始从抽象的认知模型进入真正的 PHP OOP 运行环境,为下一阶段的 Element Class、Object Class、Attribute Class、Relation Class、State Class 等核心认知对象工程建立基础。

Leave a Reply

Your email address will not be published. Required fields are marked *