cargomedia / cm
Requires
- php: >=5.6.0
- aws/aws-sdk-php: ~3.22
- composer/composer: ~1.4.0
- danielstjules/stringy: ~2.3
- easybook/geshi: 1.0.8.11
- elasticsearch/elasticsearch: ~2.0.0
- fluent/logger: ~1.0.1
- guzzlehttp/guzzle: ~6.0
- jenssegers/agent: ~2.3.1
- kickbox/kickbox: ~1.0.3
- kissmetrics/kissmetrics-php: ~0.1.0
- leafo/lessphp: ~0.5.0
- lstrojny/functional-php: ~1.2.4
- michelf/php-markdown: 1.4.0
- mischiefcollective/colorjizz: ~1.0.0
- mongodb/mongodb: ~1.0.0
- nicmart/tree: ~0.2.0
- predis/predis: ~1.0.3
- psr/http-message: ~1.0
- ramsey/uuid: ~3.5.0
- smarty/smarty: 3.1.16
- swiftmailer/swiftmailer: ~5.4.3
- tomaszdurka/codegenerator: ~0.5.0
Requires (Dev)
- phpunit/phpunit: ~5.7.0
- tomaszdurka/mocka: ~0.12.3
- dev-master
- 1.258.5
- 1.258.4
- 1.258.3
- 1.258.2
- 1.258.1
- 1.258.0
- 1.257.6
- 1.257.5
- 1.257.4
- 1.257.3
- 1.257.2
- 1.257.1
- 1.257.0
- 1.256.10
- 1.256.9
- 1.256.8
- 1.256.7
- 1.256.6
- 1.256.5
- 1.256.4
- 1.256.3
- 1.256.2
- 1.256.1
- 1.256.0
- 1.255.2
- 1.255.1
- 1.255.0
- 1.254.1
- 1.254.0
- 1.253.0
- 1.252.0
- 1.251.0
- 1.250.1
- 1.250.0
- 1.249.1
- 1.249.0
- 1.248.0
- 1.247.0
- 1.246.7
- 1.246.6
- 1.246.5
- 1.246.4
- 1.246.3
- 1.246.2
- 1.246.1
- 1.246.0
- 1.245.0
- 1.244.2
- 1.244.1
- 1.244.0
- 1.243.5
- 1.243.4
- 1.243.3
- 1.243.2
- 1.243.1
- 1.243.0
- 1.242.1
- 1.242.0
- 1.241.1
- 1.241.0
- 1.240.1
- 1.240.0
- 1.239.0
- 1.238.2
- 1.238.1
- 1.238.0
- 1.237.0
- 1.236.0
- 1.235.6
- 1.235.5
- 1.235.4
- 1.235.3
- 1.235.2
- 1.235.1
- 1.235.0
- 1.234.0
- 1.233.0
- 1.232.0
- 1.231.3
- 1.231.2
- 1.231.1
- 1.231.0
- 1.230.1
- 1.230.0
- 1.229.2
- 1.229.1
- 1.229.0
- 1.228.0
- 1.227.0
- 1.226.2
- 1.226.1
- 1.226.0
- 1.225.1
- 1.225.0
- 1.224.0
- 1.223.1
- 1.223.0
- 1.222.1
- 1.222.0
- 1.221.9
- 1.221.8
- 1.221.7
- 1.221.6
- 1.221.5
- 1.221.4
- 1.221.3
- 1.221.2
- 1.221.1
- 1.221.0
- 1.220.1
- 1.220.0
- 1.219.2
- 1.219.1
- 1.219.0
- 1.218.1
- 1.218.0
- 1.217.1
- 1.217.0
- 1.216.1
- 1.216.0
- 1.215.2
- 1.215.1
- 1.215.0
- 1.214.0
- 1.213.1
- 1.213.0
- 1.212.1
- 1.212.0
- 1.211.0
- 1.210.4
- 1.210.3
- 1.210.2
- 1.210.1
- 1.210.0
- 1.209.3
- 1.209.2
- 1.209.1
- 1.209.0
- 1.208.12
- 1.208.11
- 1.208.10
- 1.208.9
- 1.208.8
- 1.208.7
- 1.208.6
- 1.208.5
- 1.208.4
- 1.208.3
- 1.208.2
- 1.208.1
- 1.208.0
- 1.207.5
- 1.207.4
- 1.207.3
- 1.207.2
- 1.207.1
- 1.207.0
- 1.206.2
- 1.206.1
- 1.206.0
- 1.205.1
- 1.205.0
- 1.204.2
- 1.204.1
- 1.204.0
- 1.203.4
- 1.203.3
- 1.203.2
- 1.203.1
- 1.203.0
- 1.202.0
- 1.201.4
- 1.201.3
- 1.201.2
- 1.201.1
- 1.201.0
- 1.200.6
- 1.200.5
- 1.200.4
- 1.200.3
- 1.200.2
- 1.200.1
- 1.200.0
- 1.199.0
- 1.198.2
- 1.198.1
- 1.198.0
- 1.197.1
- 1.197.0
- 1.196.1
- 1.196.0
- 1.195.5
- 1.195.4
- 1.195.3
- 1.195.2
- 1.195.1
- 1.195.0
- 1.194.7
- 1.194.6
- 1.194.5
- 1.194.4
- 1.194.3
- 1.194.2
- 1.194.1
- 1.194.0
- 1.193.12
- 1.193.11
- 1.193.10
- 1.193.9
- 1.193.8
- 1.193.7
- 1.193.6
- 1.193.5
- 1.193.4
- 1.193.3
- 1.193.2
- 1.193.1
- 1.193.0
- 1.192.4
- 1.192.3
- 1.192.2
- 1.192.1
- 1.192.0
- 1.191.1
- 1.191.0
- 1.190.0
- 1.189.1
- 1.189.0
- 1.188.3
- 1.188.2
- 1.188.1
- 1.188.0
- 1.187.0
- 1.186.0
- 1.185.0
- 1.184.0
- 1.183.0
- 1.182.2
- 1.182.1
- 1.182.0
- 1.181.1
- 1.181.0
- 1.180.2
- 1.180.1
- 1.180.0
- 1.179.6
- 1.179.5
- 1.179.4
- 1.179.3
- 1.179.2
- 1.179.1
- 1.179.0
- 1.178.1
- 1.178.0
- 1.177.2
- 1.177.1
- 1.177.0
- 1.176.0
- 1.175.1
- 1.175.0
- 1.174.4
- 1.174.3
- 1.174.2
- 1.174.1
- 1.174.0
- 1.173.1
- 1.173.0
- 1.172.8
- 1.172.7
- 1.172.6
- 1.172.5
- 1.172.4
- 1.172.3
- 1.172.2
- 1.172.1
- 1.172.0
- 1.171.13
- 1.171.12
- 1.171.11
- 1.171.10
- 1.171.9
- 1.171.8
- 1.171.7
- 1.171.6
- 1.171.5
- 1.171.4
- 1.171.3
- 1.171.2
- 1.171.1
- 1.171.0
- 1.170.4
- 1.170.3
- 1.170.2
- 1.170.1
- 1.170.0
- 1.169.2
- 1.169.1
- 1.169.0
- 1.168.1
- 1.168.0
- 1.167.1
- 1.167.0
- 1.166.5
- 1.166.4
- 1.166.3
- 1.166.2
- 1.166.1
- 1.166.0
- 1.165.0
- 1.164.6
- 1.164.5
- 1.164.4
- 1.164.3
- 1.164.2
- 1.164.1
- 1.164.0
- 1.163.1
- 1.163.0
- 1.162.0
- 1.161.3
- 1.161.2
- 1.161.1
- 1.161.0
- 1.160.20
- 1.160.19
- 1.160.18
- 1.160.17
- 1.160.16
- 1.160.15
- 1.160.14
- 1.160.13
- 1.160.12
- 1.160.11
- 1.160.10
- 1.160.9
- 1.160.8
- 1.160.7
- 1.160.6
- 1.160.5
- 1.160.4
- 1.160.3
- 1.160.2
- 1.160.1
- 1.160.0
- 1.159.3
- 1.159.2
- 1.159.1
- 1.159.0
- 1.158.1
- 1.158.0
- 1.157.0
- 1.156.0
- 1.155.2
- 1.155.1
- 1.155.0
- 1.154.1
- 1.154.0
- 1.153.1
- 1.153.0
- 1.152.0
- 1.151.3
- 1.151.2
- 1.151.1
- 1.151.0
- 1.150.0
- 1.149.1
- 1.149.0
- 1.148.1
- 1.148.0
- 1.147.0
- 1.146.0
- 1.145.0
- 1.144.1
- 1.144.0
- 1.143.0
- 1.142.0
- 1.141.0
- 1.140.0
- 1.139.1
- 1.139.0
- 1.138.0
- 1.137.5
- 1.137.4
- 1.137.3
- 1.137.2
- 1.137.1
- 1.137.0
- 1.136.3
- 1.136.2
- 1.136.1
- 1.136.0
- 1.135.0
- 1.134.0
- 1.133.2
- 1.133.1
- 1.133.0
- 1.132.0
- 1.131.3
- 1.131.2
- 1.131.1
- 1.131.0
- 1.130.0
- 1.129.0
- 1.128.2
- 1.128.1
- 1.128.0
- 1.127.9
- 1.127.8
- 1.127.7
- 1.127.6
- 1.127.5
- 1.127.4
- 1.127.3
- 1.127.2
- 1.127.1
- 1.127.0
- 1.126.7
- 1.126.6
- 1.126.5
- 1.126.4
- 1.126.3
- 1.126.2
- 1.126.1
- 1.126.0
- 1.125.0
- 1.124.0
- 1.123.0
- 1.122.6
- 1.122.5
- 1.122.4
- 1.122.3
- 1.122.2
- 1.122.1
- 1.122.0
- 1.121.1
- 1.121.0
- 1.120.0
- 1.119.0
- 1.118.0
- 1.117.8
- 1.117.7
- 1.117.6
- 1.117.5
- 1.117.4
- 1.117.3
- 1.117.2
- 1.117.1
- 1.117.0
- 1.116.3
- 1.116.2
- 1.116.1
- 1.116.0
- 1.115.0
- 1.114.3
- 1.114.2
- 1.114.1
- 1.114.0
- 1.113.0
- 1.112.0
- 1.111.0
- 1.110.0
- 1.109.0
- 1.108.6
- 1.108.5
- 1.108.4
- 1.108.3
- 1.108.2
- 1.108.1
- 1.108.0
- 1.107.5
- 1.107.4
- 1.107.3
- 1.107.2
- 1.107.1
- 1.107.0
- 1.106.0
- 1.105.2
- 1.105.1
- 1.105.0
- 1.104.4
- 1.104.3
- 1.104.2
- 1.104.1
- 1.104.0
- 1.103.3
- 1.103.2
- 1.103.0
- 1.102.4
- 1.102.3
- 1.102.2
- 1.102.1
- 1.102.0
- 1.101.0
- 1.100.3
- 1.100.2
- 1.100.1
- 1.100.0
- 1.99.1
- 1.99.0
- 1.98.0
- 1.97.2
- 1.97.1
- 1.97.0
- 1.96.5
- 1.96.4
- 1.96.3
- 1.96.2
- 1.96.1
- 1.96.0
- 1.95.0
- 1.94.0
- 1.93.0
- 1.92.3
- 1.92.2
- 1.92.1
- 1.92.0
- 1.91.0
- 1.90.0
- 1.89.2
- 1.89.1
- 1.89.0
- 1.88.0
- 1.87.1
- 1.87.0
- 1.86.1
- 1.86.0
- 1.84.0
- 1.83.0
- 1.82.6
- 1.82.5
- 1.82.4
- 1.82.3
- 1.82.2
- 1.82.1
- 1.82.0
- 1.81.4
- 1.81.3
- 1.81.2
- 1.81.1
- 1.81.0
- 1.80.1
- 1.80.0
- 1.79.11
- 1.79.10
- 1.79.9
- 1.79.8
- 1.79.7
- 1.79.6
- 1.79.5
- 1.79.4
- 1.79.3
- 1.79.2
- 1.79.1
- 1.79.0
- 1.78.2
- 1.78.1
- 1.78.0
- 1.77.3
- 1.77.2
- 1.77.1
- 1.77.0
- 1.76.0
- 1.75.4
- 1.75.3
- 1.75.2
- 1.75.1
- 1.75.0
- 1.74.2
- 1.74.1
- 1.74.0
- 1.73.1
- 1.73.0
- 1.72.0
- 1.71.8
- 1.71.7
- 1.71.6
- 1.71.5
- 1.71.4
- 1.71.3
- 1.71.2
- 1.71.1
- 1.71.0
- 1.70.5
- 1.70.4
- 1.70.3
- 1.70.2
- 1.70.1
- 1.70.0
- 1.69.0
- 1.68.0
- 1.67.1
- 1.67.0
- 1.66.0
- 1.65.0
- 1.64.2
- 1.64.1
- 1.64.0
- 1.63.2
- 1.63.1
- 1.63.0
- 1.62.7
- 1.62.6
- 1.62.5
- 1.62.4
- 1.62.3
- 1.62.2
- 1.62.1
- 1.62.0
- 1.61.1
- 1.61.0
- 1.60.0
- 1.59.0
- 1.58.0
- 1.57.3
- 1.57.2
- 1.57.1
- 1.57.0
- 1.56.5
- 1.56.4
- 1.56.3
- 1.56.2
- 1.56.1
- 1.56.0
- 1.55.1
- 1.55.0
- 1.54.0
- 1.53.0
- 1.52.0
- 1.51.2
- 1.51.1
- 1.51.0
- 1.50.0
- 1.49.0
- 1.48.0
- 1.47.0
- 1.46.0
- 1.45.0
- 1.44.1
- 1.44.0
- 1.43.2
- 1.43.1
- 1.43.0
- 1.42.1
- 1.42.0
- 1.41.1
- 1.41.0
- 1.40.0
- 1.39.0
- 1.38.0
- 1.37.0
- 1.36.1
- 1.36.0
- 1.35.0
- 1.34.0
- 1.33.1
- 1.33.0
- 1.32.1
- 1.32.0
- 1.31.2
- 1.31.1
- 1.31.0
- 1.30.2
- 1.30.1
- 1.30.0
- 1.29.4
- 1.29.3
- 1.29.2
- 1.29.1
- 1.29.0
- 1.28.1
- 1.28.0
- 1.27.0
- 1.26.1
- 1.26.0
- 1.25.2
- 1.25.1
- 1.25.0
- 1.24.0
- 1.23.2
- 1.23.1
- 1.23.0
- 1.22.0
- 1.21.2
- 1.21.1
- 1.21.0
- 1.20.0
- 1.19.0
- 1.18.1
- 1.18.0
- 1.17.0
- 1.16.2
- 1.16.1
- 1.16.0
- 1.15.10
- 1.15.9
- 1.15.8
- 1.15.7
- 1.15.6
- 1.15.5
- 1.15.4
- 1.15.3
- 1.15.2
- 1.15.1
- 1.15.0
- 1.14.0
- 1.13.9
- 1.13.8
- 1.13.7
- 1.13.6
- 1.13.5
- 1.13.4
- 1.13.3
- 1.13.2
- 1.13.1
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.1
- 1.11.0
- 1.10.2
- 1.10.1
- 1.10.0
- 1.9.1
- 1.9.0
- 1.8.1
- 1.8.0
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.8
- 1.6.7
- 1.6.6
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6.0
- 1.5.1
- 1.5.0
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.21
- 1.3.20
- 1.3.19
- 1.3.18
- 1.3.17
- 1.3.16
- 1.3.15
- 1.3.14
- 1.3.13
- 1.3.12
- 1.3.11
- 1.3.10
- 1.3.9
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.97
- 1.2.96
- 1.2.95
- 1.2.94
- 1.2.93
- 1.2.92
- 1.2.91
- 1.2.90
- 1.2.89
- 1.2.88
- 1.2.87
- 1.2.86
- 1.2.85
- 1.2.84
- 1.2.83
- 1.2.82
- 1.2.81
- 1.2.80
- 1.2.79
- 1.2.78
- 1.2.77
- 1.2.76
- 1.2.75
- 1.2.74
- 1.2.73
- 1.2.72
- 1.2.71
- 1.2.70
- 1.2.69
- 1.2.68
- 1.2.67
- 1.2.66
- 1.2.65
- 1.2.64
- 1.2.63
- 1.2.62
- 1.2.61
- 1.2.60
- 1.2.59
- 1.2.58
- 1.2.57
- 1.2.56
- 1.2.55
- 1.2.54
- 1.2.53
- 1.2.52
- 1.2.51
- 1.2.50
- 1.2.49
- 1.2.48
- 1.2.47
- 1.2.46
- 1.2.45
- 1.2.44
- 1.2.43
- 1.2.42
- 1.2.41
- 1.2.40
- 1.2.39
- 1.2.38
- 1.2.37
- 1.2.36
- 1.2.35
- 1.2.34
- 1.2.33
- 1.2.32
- 1.2.31
- 1.2.30
- 1.2.29
- 1.2.28
- 1.2.27
- 1.2.26
- 1.2.25
- 1.2.24
- 1.2.23
- 1.2.22
- 1.2.21
- 1.2.20
- 1.2.19
- 1.2.18
- 1.2.17
- 1.2.16
- 1.2.15
- 1.2.14
- 1.2.13
- 1.2.12
- 1.2.11
- 1.2.10
- 1.2.9
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.198
- 1.1.197
- 1.1.196
- 1.1.195
- 1.1.194
- 1.1.193
- 1.1.192
- 1.1.191
- 1.1.190
- 1.1.189
- 1.1.188
- 1.1.187
- 1.1.186
- 1.1.185
- 1.1.184
- 1.1.183
- 1.1.182
- 1.1.181
- 1.1.180
- 1.1.179
- 1.1.178
- 1.1.177
- 1.1.176
- 1.1.175
- 1.1.174
- 1.1.173
- 1.1.172
- 1.1.171
- 1.1.170
- 1.1.169
- 1.1.168
- 1.1.167
- 1.1.166
- 1.1.165
- 1.1.164
- 1.1.163
- 1.1.162
- 1.1.161
- 1.1.160
- 1.1.159
- 1.1.158
- 1.1.157
- 1.1.156
- 1.1.155
- 1.1.154
- 1.1.153
- 1.1.152
- 1.1.151
- 1.1.150
- 1.1.149
- 1.1.148
- 1.1.147
- 1.1.146
- 1.1.145
- 1.1.144
- 1.1.143
- 1.1.142
- 1.1.141
- 1.1.140
- 1.1.139
- 1.1.138
- 1.1.137
- 1.1.136
- 1.1.135
- 1.1.134
- 1.1.133
- 1.1.132
- 1.1.131
- 1.1.130
- 1.1.129
- 1.1.128
- 1.1.127
- 1.1.126
- 1.1.125
- 1.1.124
- 1.1.123
- 1.1.122
- 1.1.121
- 1.1.120
- 1.1.119
- 1.1.118
- 1.1.117
- 1.1.116
- 1.1.115
- 1.1.114
- 1.1.113
- 1.1.112
- 1.1.111
- 1.1.110
- 1.1.109
- 1.1.108
- 1.1.107
- 1.1.106
- 1.1.105
- 1.1.104
- 1.1.103
- 1.1.102
- 1.1.101
- 1.1.100
- 1.1.99
- 1.1.98
- 1.1.97
- 1.1.96
- 1.1.95
- 1.1.94
- 1.1.93
- 1.1.92
- 1.1.91
- 1.1.90
- 1.1.89
- 1.1.88
- 1.1.87
- 1.1.86
- 1.1.85
- 1.1.84
- 1.1.83
- 1.1.82
- 1.1.81
- 1.1.80
- 1.1.79
- 1.1.78
- 1.1.77
- 1.1.76
- 1.1.75
- 1.1.74
- 1.1.73
- 1.1.72
- 1.1.71
- 1.1.70
- 1.1.69
- 1.1.68
- 1.1.67
- 1.1.66
- 1.1.65
- 1.1.64
- 1.1.63
- 1.1.62
- 1.1.61
- 1.1.60
- 1.1.59
- 1.1.58
- 1.1.57
- 1.1.56
- 1.1.55
- 1.1.54
- 1.1.53
- 1.1.52
- 1.1.51
- 1.1.50
- 1.1.49
- 1.1.48
- 1.1.47
- 1.1.46
- 1.1.45
- 1.1.44
- 1.1.43
- 1.1.42
- 1.1.41
- 1.1.40
- 1.1.39
- 1.1.38
- 1.1.37
- 1.1.36
- 1.1.35
- 1.1.34
- 1.1.33
- 1.1.32
- 1.1.31
- 1.1.30
- 1.1.29
- 1.1.28
- 1.1.27
- 1.1.26
- 1.1.25
- 1.1.24
- 1.1.23
- 1.1.22
- 1.1.21
- 1.1.20
- 1.1.19
- 1.1.18
- 1.1.17
- 1.1.16
- 1.1.15
- 1.1.14
- 1.1.13
- 1.1.12
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.101
- 1.0.100
- 1.0.99
- 1.0.98
- 1.0.97
- 1.0.96
- 1.0.95
- 1.0.94
- 1.0.93
- 1.0.92
- 1.0.91
- 1.0.90
- 1.0.89
- 1.0.88
- 1.0.87
- 1.0.86
- 1.0.85
- 1.0.84
- 1.0.83
- 1.0.82
- 1.0.81
- 1.0.80
- 1.0.79
- 1.0.78
- 1.0.77
- 1.0.76
- 1.0.75
- 1.0.74
- 1.0.73
- 1.0.72
- 1.0.71
- 1.0.70
- 1.0.69
- 1.0.68
- 1.0.67
- 1.0.66
- 1.0.65
- 1.0.64
- 1.0.63
- 1.0.62
- 1.0.61
- 1.0.60
- 1.0.59
- 1.0.58
- 1.0.57
- 1.0.56
- 1.0.55
- 1.0.54
- 1.0.53
- 1.0.52
- 1.0.51
- 1.0.50
- 1.0.49
- 1.0.48
- 1.0.47
- 1.0.46
- 1.0.45
- 1.0.44
- 1.0.43
- 1.0.42
- 1.0.41
- 1.0.40
- 1.0.39
- 1.0.38
- 1.0.37
- 1.0.36
- 1.0.35
- 1.0.34
- 1.0.33
- 1.0.32
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.26
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-revert-2677-revert-2676-include-index-names-in-es-stats
- dev-revert-2676-include-index-names-in-es-stats
- dev-revert-2613-uri-perf-2
- dev-revert-2521-upgrade-mongo
- dev-revert-2191-issue-2191
- dev-revert-2131-issue-2131
- dev-stream-channels
- dev-revert-1700-revert-1698-usertext-userfiles
- dev-revert-1698-usertext-userfiles
- dev-revert-1645-issue-1645
- dev-revert-1484-issue-1484
- dev-revert-1455-revert-1430-issue-1430
- dev-revert-1430-issue-1430
- dev-issue-1366
- dev-revert-1378-issue-475
- dev-issue-1235
- dev-issue-2751
This package is not auto-updated.
Last update: 2019-02-20 17:48:34 UTC
README
该项目不再维护。如果您想接管,请联系我们 tech@cargomedia.ch。
CM 框架 
主要概念
命名空间
命名空间将相关代码分组。命名空间用作类名的前缀。CM
是一个命名空间,类名可以是 CM_Foo_BarZoo
。
站点
一个应用程序可以服务多个 站点(扩展 CM_Site_Abstract
)。
在处理之前,每个 HTTP 请求(CM_Http_Request_Abstract
)都会与可用的站点(::match()
)进行匹配。
一个站点包含多个 命名空间(用于模型和控制台)和 主题(用于视图)。
视图
视图(扩展 CM_View_Abstract
)可以被渲染,通常是作为 HTML。以下视图类型是预先定义的
CM_Layout_Abstract
:HTML 文档。CM_Page_Abstract
:Web 应用程序的一页。实际上是一个组件本身。CM_Component_Abstract
:HTML 文档的子部分。CM_Form_Abstract
:带有输入元素和操作的表单。CM_FormField_Abstract
:表单输入字段。CM_Mail_Mailable
:电子邮件。
模型
模型(扩展 CM_Model_Abstract
)代表一个“现实世界”的对象,从键值存储中读取和写入数据,并在其上提供功能。
每个模型都有一个 id,它可以用来实例化
$foo = new Foo(123);
默认情况下,构造函数期望一个整数值作为 ID。内部,它被存储为一个键值存储(数组),如果需要更复杂的模型标识,则可以公开。
模式
为了验证和强制执行模型字段的类型转换,定义一个合适的模式定义
protected function _getSchema() { return new CM_Model_Schema_Definition(array( 'fieldA' => array('type' => 'int'), 'fieldB' => array('type' => 'string', 'optional' => true), 'fieldC' => array('type' => 'CM_Model_Example'), )); }
具有模型类名作为类型的字段将在读取和写入数据存储时在 对象 和 其 ID 的 JSON 表示 之间进行转换。
持久化数据
如果存在,将使用 持久化 存储适配器来加载数据和保存模型数据。
public static function getPersistenceClass() { return 'CM_Model_StorageAdapter_Database'; }
在这个例子中,当实例化现有模型或更新模式字段时,将调用数据库适配器的 load()
和 save()
方法。
CM_Model_StorageAdapter_Database
将使用以下命名约定将模型持久化到数据库中
- 表名:模型的类名的小写
- 列名:模式字段的名称
您可以使用 _get()
和 _set()
访问模型字段,这些方法将考虑模式进行类型强制转换。建议为每个字段实现一对获取器和设置器,以保持字段名内部化
/** * @return string|null */ public function getFieldB() { return $this->_get('fieldB'); } /** * @param string|null $fieldB */ public function setFieldB($fieldB) { $this->_set('fieldB', $fieldB); } /** * @return CM_Model_Example */ public function getFieldC() { return $this->_get('fieldC'); } /** * @param CM_Model_Example $fieldC */ public function setFieldC($fieldC) { $this->_set('fieldC', $fieldC); }
默认情况下,数据在Memcache中在多次读取之间进行缓存。使用getCacheClass()
来改变此行为
public static function getCacheClass() { return 'CM_Model_StorageAdapter_CacheLocal'; }
或者,如果您不使用持久化存储适配器,您可以实现一个自定义方法_loadData()
,该方法应返回一个包含模型键值数据的数组。在这种情况下,您的设置器负责持久化,并且仍然应该调用_set()
进行缓存。
创建和删除
具有持久化存储适配器的模型可以通过使用其设置器后跟commit()
来创建。
$foo = new Foo(); $foo->setFieldA(23); $foo->setFieldB('bar'); $foo->commit();
对于删除模型,只需调用
$foo = new Foo(123); $foo->delete();
或者,如果您不使用持久化存储适配器,您可以在_createStatic(array $data)
中实现自己的创建逻辑,然后使用以下方式创建模型:
$foo = Foo::createStatic(array('fieldA' => 1, 'fieldB' => 'hello world'));
在这种情况下,请确保在_onDelete()
中删除相应的记录(见下文)。
事件处理
以下方法将在模型生命周期的不同事件中被调用
_onCreate()
:在持久化后,当模型被创建时。_onChange()
:在持久化后,当字段的值被更改时。模型创建后也会调用。_onDelete()
:在持久化之前,当模型被删除时。
分页
分页是有分页功能的有序集合。
分页的数据源是分页源(CM_PagingSource_Sql
,CM_PagingSource_Elasticsearch
等)。可以通过enableCache()
启用缓存。
分页中的项目在被返回之前可以进行处理。例如,可以实例化一个对象,该对象是从数据库返回的id。
命名约定
CM_Paging_<Type of item>_<Lookup description> CM_Paging_Photo_User # All photos of a given user CM_Paging_User_Country # All users from a given country
文件结构
类定义应按主题分组,并存储在公共目录中。在这样一个主题模块中,应使用目录来分组具有共同父类的文件。一个主题模块可以再次包含另一个(子)主题模块的目录。
主题模块“付款”的示例,位于另一个主题模块“会计”内部
library/
└── CM
└── Payments
├── Accounting
│ ├── Account.php
│ ├── Transaction.php
│ └── TransactionList
│ ├── Abstract.php
│ └── User.php
├── Bank.php
├── BankList
│ ├── Abstract.php
│ ├── All.php
│ └── PaymentProvider.php
├── ExchangeRateUpdater.php
└── SetupScript.php
如组件和页面之类的视图需要位于其相应的目录中。建议在子目录中按主题对它们进行分组。
主题“付款”的组件示例
library/
└── CM
└── Component
└── Payments
├── AccountList.js
├── AccountList.php
├── TransactionList.js
└── TransactionList.php
创建新项目
克隆CM骨架应用程序
在您的工作区中运行
composer create-project cargomedia/cm-project --stability=dev <project-name>
这将创建一个新的目录<project-name>
,其中包含基于CM的项目。
命名空间创建、站点设置
CM框架提供了一个基础,应该被扩展。我们自己的库应包含在不同的命名空间中。要创建一个,只需运行
bin/cm generator create-namespace <namespace>
添加新模块
为了简化创建常见的框架模块,同时也有助于理解其结构,有一个生成器工具。它有助于构建框架视图和简单的类。它还允许轻松添加新的命名空间或站点。
generator create-view <class-name>
基于提供的创建新的视图。它将创建php类、javascript类、空html模板和less文件。它还会寻找最合适的抽象类来扩展。
generator create-class <class-name>
创建新的类。
命令行工具
CM 框架自带一组命令行工具,可以轻松运行常见的 PHP 程序。要查看所有可用的命令,只需执行 bin/cm
。
Usage:
[options] <command> [arguments]
Options:
--quiet
--quiet-warnings
--non-interactive
--forks=<value>
Commands:
app fill-caches
app generate-config-internal
app set-config <filename> <config-json> [--merge]
app setup [--reload]
cache clear
console interactive
db db-to-file <namespace>
db file-to-db
frontend generate-favicon
frontend icon-refresh
generator create-class <class-name>
generator create-module <module-name> [--single-module-structure] [--module-path=<value>]
generator create-view <class-name>
job-distribution start-worker
location outdated [--verbose]
location upgrade [--without-ip-blocks] [--verbose]
maintenance start
media-streams import-archive <stream-channel-media-id> <archive-source>
media-streams import-video-thumbnail <stream-channel-media-id> <thumbnail-source> <create-stamp>
message-stream start-synchronization
migration add [--namespace=<value>] [--name=<value>]
migration run [--name=<value>]
search-index create [--index-name=<value>] [--skip-if-exist]
search-index delete [--index-name=<value>]
search-index optimize
search-index update [--index-name=<value>]
部署
除了设置整个基础设施(http 服务器,各种服务)之外,应用程序本身也需要做一些准备。
类类型
每个 CM 应用程序都严重依赖于类型,这些类型是类的一个整数标识符。为了保持固定的标识符(类名可以更改),我们需要将这些存储在版本控制系统中存储的配置文件(internal.php)中。要生成类型,运行
$ bin/cm app generate-config-internal
这将生成应用程序运行所需的 resources/config/internal.php
和 resources/config/js/internal.js
文件。请将此文件保留在版本控制系统中,因为它需要在版本之间保留。
配置脚本
大多数 CM 应用程序都需要设置服务并/或插入一些初始数据。为此,CM 框架使用所谓的配置脚本。有一个内置命令可以运行配置属性 $config->CM_App->setupScriptClasses
中定义的所有设置脚本。
$ bin/cm app setup
配置脚本负责设置与应用程序相关的一切,从创建数据库模式到加载固定数据。
配置脚本
所有这些脚本都需要是扩展 CM_Provision_Script_Abstract
的类,并实现 load
和 shouldBeLoaded
方法。任何时间脚本即将被加载时,它们将首先通过运行 shouldBeLoaded
来检查它们是否确实应该被加载。一旦这是肯定的,它将运行 load
。
此外,配置脚本可以实现 CM_Provision_Script_UnloadableInterface
,并实现相应的 unload
和 shouldBeUnloaded
方法。
迁移脚本
迁移脚本位于 [modulePath]/resources/migration
目录中,它们按照模块注册顺序执行(见 composer.json
中的 extra.cm-modules
),然后按脚本文件名自然顺序。
- 脚本类将在运行时 require 并实例化
- 脚本类名必须是唯一的
- 按照惯例,在类名中添加一个时间戳以避免冲突
- 脚本类必须实现
CM_Migration_UpgradableInterface
接口 - 脚本可以可选地实现
CM_Service_ManagerAwareInterface
以获取对服务管理器的访问权限 - 如果可用,将在脚本执行期间显示
UpgradableInterface::up
PHP 文档块
执行迁移脚本
cm 迁移运行
运行所有尚未成功执行的脚本cm 迁移运行 --name=<filename>
(重新)运行特定的脚本,通过其文件名(不带扩展名)
例如
bin/cm migration run
- 1485180420_Foo…
- 1485180453_Bar: some description coming from PHP doc…
生成迁移脚本
cm 迁移添加
生成迁移脚本,默认在[root]/resources/migration
中,并使用当前的 git 分支名称cm 迁移添加 --namespace=<module-name> --name=<script-name>
在特定模块/具有特定名称中生成迁移脚本
例如
bin/cm migration add --namespace=Foo --name=Bar
`/home/vagrant/cm/library/Foo/resources/migration/1485180453_Bar.php` generated