Skip to content

Commit 4d7ddb2

Browse files
committed
重构1.0版本😎
1 parent 5a062d8 commit 4d7ddb2

94 files changed

Lines changed: 2239 additions & 20090 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,5 @@
1515

1616
###> symfony/framework-bundle ###
1717
APP_ENV=dev
18-
APP_SECRET=1e0a0e96d4ade8189745bcdd2946c25f
19-
#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
20-
#TRUSTED_HOSTS='^(localhost|example\.com)$'
18+
APP_SECRET=9e2d676e241eddebe293fc439b2574b8
2119
###< symfony/framework-bundle ###
22-
23-
###> symfony/mailer ###
24-
# MAILER_DSN=smtp://localhost
25-
###< symfony/mailer ###
26-
27-
###> doctrine/doctrine-bundle ###
28-
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
29-
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
30-
# For a PostgreSQL database, use: "postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=11&charset=utf8"
31-
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
32-
DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7
33-
###< doctrine/doctrine-bundle ###
34-
35-
###> nelmio/cors-bundle ###
36-
CORS_ALLOW_ORIGIN=^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$
37-
###< nelmio/cors-bundle ###
38-
39-
###> symfony/lock ###
40-
# Choose one of the stores below
41-
# postgresql+advisory://db_user:db_password@localhost/db_name
42-
LOCK_DSN=semaphore
43-
###< symfony/lock ###

.env.test

Lines changed: 0 additions & 5 deletions
This file was deleted.

.gitignore

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,7 @@
99
/vendor/
1010
###< symfony/framework-bundle ###
1111

12-
###> symfony/phpunit-bridge ###
13-
.phpunit
14-
.phpunit.result.cache
15-
/phpunit.xml
16-
###< symfony/phpunit-bridge ###
17-
18-
###> local ###
12+
###> phpstorm & MacOS ###
1913
.idea
2014
.DS_Store
21-
node_modules
22-
composer.local.json
23-
public/vendor/
24-
public/uploads/
25-
###< local ###
26-
27-
###> liip/imagine-bundle ###
28-
/public/media/cache/
29-
###< liip/imagine-bundle ###
30-
###> phpunit/phpunit ###
31-
/phpunit.xml
32-
.phpunit.result.cache
33-
###< phpunit/phpunit ###
15+
###< phpstorm & MacOS ###

CHANGELOG-1.0.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
1.0.0(2021-09-05)
2+
1. 使用全新Symfony5进行重构。

CHANGELOG.md

Lines changed: 0 additions & 42 deletions
This file was deleted.

LICENSE

Lines changed: 0 additions & 21 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1 @@
1-
# TEEBB 0.x版本进入维护状态。即将重构代码,敬请期待。
2-
##### doctrine-bundle 2.3以上版本使用PhpArrayCache缓存ORM注解Metadata,会引起TEEBB在生产环境下重大BUG。
3-
```php
4-
// 需要修改 doctrine-bundle 源码解决此问题
5-
// vendor/doctrine/doctrine-bundle/DependencyInjection/DoctrineExtension.php
6-
protected function loadOrmCacheDrivers(array $entityManager, ContainerBuilder $container)
7-
{
8-
$this->loadCacheDriver('metadata_cache', $entityManager['name'], $entityManager['metadata_cache_driver'], $container);
9-
$this->loadCacheDriver('result_cache', $entityManager['name'], $entityManager['result_cache_driver'], $container);
10-
$this->loadCacheDriver('query_cache', $entityManager['name'], $entityManager['query_cache_driver'], $container);
11-
12-
if ($container->getParameter('kernel.debug')) {
13-
return;
14-
}
15-
16-
// 需要注释下面一行代码解决BUG
17-
// $this->registerMetadataPhpArrayCaching($entityManager['name'], $container);
18-
}
19-
```
20-
21-
# TEEBB内容管理系统使用文档
22-
TEEBB是基于Symfony框架开发的一款可自由扩展的内容管理系统。您可以自由使用本软件来构建您的博客、网站等应用。本项目将会长期开发维护,欢迎使用。
23-
TEEBB的原理设计参考了著名的Drupal,注重内容的扩展性与功能性,因为Drupal的学习曲线太高了,于是我开发了TEEBB,它更轻量也更容易上手。目前0.x版本已实现了内容管理和一些基本功能,
24-
注重内容类型网站的开发。在后续版本中将实现I18N(国际化),RESTful API,消息队列,缓存等等功能。如果您是Symfony初学者,TEEBB用到了Symfony的多个组件,是个不错的学习案例。
25-
欢迎您进行Fork,并提交Pull Request,我们一起开发维护TEEBB,如果后续TEEBB有获利计划,我将优先通知您参与并获取相应利益。
26-
![alt TEEBB控制台](docs/teebb_images/teebb-dashboard.png "TEEBB控制台")
27-
28-
## [TEEBB基础视频教程](https://www.teebb.com/course-detail/teebb-begin)
29-
30-
### 1.TEEBB的下载和安装说明
31-
TEEBB的运行环境:
32-
PHP 7.2.5及以上、Mysql 5.7.x、推荐安装:Symfony 命令行工具,详见:www.symfony.com
33-
34-
```
35-
#下载TEEBB
36-
composer create-project teebbstudios/teebb acme
37-
cd acme
38-
#安装JS库
39-
npm install
40-
gulp build
41-
#安装CKEDITOR 资源包
42-
symfony console ckeditor:install
43-
#TEEBB资源安装
44-
symfony console assets:install public --symlink
45-
#复制.env文件到.env.local, 并修改数据库DATABASE_URL及MAILER_DSN信息
46-
cp .env .env.local
47-
#初始化数据库
48-
symfony console teebb:database:init -d
49-
#运行服务器
50-
symfony serve
51-
#打开页面登录管理页面
52-
open http://127.0.0.1:8000/admin
53-
```
54-
> 初始管理员账号:admin
55-
> 初始管理员密码:admin
56-
57-
### 2.TEEBB的版本号及开发周期说明
58-
TEEBB的版本号遵循语义化版本格式:主版本号.次版本号.修订号
59-
TEEBB的次版本号(例如:0.2.x,0.3.x)发布周期:至少每四个月发布一次。
60-
TEEBB的修订版本号(例如:0.1.1,0.1.2)发布周期:至少每三个星期发布一次。
61-
62-
> Tips:目前TEEBB 0.x版本的核心功能bundle仅包含在teebbstudios/core-bundle,并不利于后期维护,因此将在1.x版本重构TEEBB。
63-
64-
### 3.TEEBB的使用介绍
65-
TEEBB的主题是内容管理,但是现实中各种各样不同类型的内容太多了,为了满足各种不同的需求以及实现灵活的扩展性,原理上我借鉴了国外的两个著名开源项目Drupal和Godot。
66-
做个假设:
67-
> 在另一个平行时空,我不是程序员而是一个名不见经传的在线小报记者,每天都忙于收集各种新闻,并发表在新闻网站上。
68-
> 我的新闻网站分为很多不同的栏目,有的栏目要求必须添加新闻图片及文字,有的栏目只用上传新闻文字,有的栏目只用上传新闻图片。
69-
> 传统的内容管理系统是怎么做的呢?
70-
> 它可能预先定义了一个统一的新闻格式,有标题、主体(Body)、封面图片等等所有可能用到的东西,然后我们创建对应的栏目分类词,再根据需要把新添加的新闻指定到对应的栏目中,这是一个好办法。但是我觉得这样灵活性及扩展性就不那么好了。
71-
> 如果我们能把新闻中所用到的标题、主体(Body)、图片等等信息抽取成不同类型的组件(我把这种组件称为“字段”,后面都称为“字段”),然后将用到的字段组合成不同的内容类型,这样会在最大程度上实现灵活性及扩展性。
72-
> 在TEEBB中,目前实现了内容、评论、分类、用户四种bundle包。这四种bundle的具体实现类型都可以组合不同的字段以实现不同的需求。
73-
74-
[3.1 内容bundle](docs/3-1conent-bundle.md)
75-
- [3.1.1 创建第一个内容类型](docs/3-1conent-bundle.md)
76-
[3.2 字段](docs/3-2field.md)
77-
- [3.2.1 TEEBB内置的字段](docs/3-2field.md)
78-
- [3.2.2 TEEBB中常用字段的设置](docs/3-2field.md)
79-
[3.3 内容](docs/3-3conent.md)
80-
- [3.3.1 添加内容](docs/3-3conent.md)
81-
- [3.3.2 内容的查询(未实现,后续版本实现)](docs/3-3conent.md)
82-
[3.4 分类bundle](docs/3-4taxonomy-bundle.md)
83-
- [3.4.1 创建分类类型](docs/3-4taxonomy-bundle.md)
84-
- [3.4.2 分类类型中字段的设置](docs/3-4taxonomy-bundle.md)
85-
- [3.4.3 添加分类词汇](docs/3-4taxonomy-bundle.md)
86-
- [3.4.4 分类字段的使用](docs/3-4taxonomy-bundle.md)
87-
[3.5 评论bundle](docs/3-5comment-bundle.md)
88-
- [3.5.1 创建评论类型](docs/3-5comment-bundle.md)
89-
- [3.5.2 评论类型中字段的设置](docs/3-5comment-bundle.md)
90-
- [3.5.3 评论字段的使用](docs/3-5comment-bundle.md)
91-
- [3.5.4 管理评论内容](docs/3-5comment-bundle.md)
92-
[3.6 用户与用户组](docs/3-6user-bundle-group.md)
93-
- [3.6.1 用户的概念](docs/3-6user-bundle-group.md)
94-
- [3.6.2 用户的字段管理(后续版本实现)](docs/3-6user-bundle-group.md)
95-
- [3.6.3 用户组及权限](docs/3-6user-bundle-group.md)
96-
[3.7 菜单系统](docs/3-7menu-system.md)
97-
- [3.7.1 创建第一个菜单](docs/3-7menu-system.md)
98-
- [3.7.2 菜单的显示](docs/3-7menu-system.md)
99-
[3.8 常用Twig函数及全局变量(将会有视频教程讲解,敬请期待)](docs/3-8twig-front-route.md)
100-
101-
### 4.基于TEEBB的开发(将有免费视频教程,敬请期待)
102-
TEEBB的设计就是要高扩展性,因此我们可以在TEEBB上进行二次开发。TEEBB默认提供了内容bundle、分类bundle、评论bundle、用户bundle。
103-
如果有一天有个需求开发一个小型的在线商城。我们可以利用图像字段作为商品的图像信息,利用布尔值字段做为商品的上下架信息、全新或二手信息,利用小数字段为商品的价格信息等等。这样我们可以创建一个bundle作为SKU对象,再创建一个bundle做为商品对象并两者进行关联以实现商城功能。
104-
不止商城,其他类型的应用也完全可以在TEEBB上进行二次开发。
105-
Wooooo!这就是我对TEEBB的设想,如果我们基于TEEBB的二次开发能做些bundle产品并出售赚取一些利润,那就再好不过了。:)
106-
4.1 创建自定义字段
107-
- 4.1.1 FieldType注解介绍
108-
- 4.1.2 实现注解中的所有的类
109-
4.2 创建自定义bundle
110-
- 4.2.1 EntityType注解介绍
111-
- 4.2.2 实现EntityType中的所有类
112-
> Tips: 此节内容较多,文字无法完全表述,将有免费的视频教程推出。基于TEEBB的开发将以视频教程的形式发布在www.teebb.com上,敬请期待。
113-
114-
### 5.TEEBB的Roadmap
115-
目前TEEBB发布了0.1.0版本,仍有不少功能急需完善,暂将一些未实现功能按优先级列下,暂不公布时间线,我把其他工作做完就会完善的,表着急啊:)。
116-
1. ckeditor编辑器的图像上传。
117-
2. 控制台Topbar及内容列表搜索过滤。
118-
3. 用户字段的实现及前端 分类 内容 字段的显示。
119-
4. 用户的字段管理。
120-
5. 缓存。
121-
6. RESTful API, 使用api-platform开发。
122-
7. 格式化器及ckeditor编辑器在使用时联动的优化。
123-
8. 控制台Topbar面包屑功能。
124-
9. bug修复。
125-
126-
### 6.TEEBB开源协议
127-
本软件遵循MIT协议。如果您能在页面上注明您的应用使用了TEEBB,本人将万分感谢。:)
128-
### 7.写在最后
129-
本人可接Symfony开发的工作,正规公司资质,可开增值税发票,如有开发业务请与我联系。QQ/微信:443580003
1+
# TEEBB正在重构,将更偏向于移动端的开发,可作为REST API服务端。敬请期待。

bin/console

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,15 @@
33

44
use App\Kernel;
55
use Symfony\Bundle\FrameworkBundle\Console\Application;
6-
use Symfony\Component\Console\Input\ArgvInput;
7-
use Symfony\Component\ErrorHandler\Debug;
86

9-
if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
10-
echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
7+
if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
8+
throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
119
}
1210

13-
set_time_limit(0);
11+
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
1412

15-
require dirname(__DIR__).'/vendor/autoload.php';
13+
return function (array $context) {
14+
$kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
1615

17-
if (!class_exists(Application::class)) {
18-
throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
19-
}
20-
21-
$input = new ArgvInput();
22-
if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
23-
putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
24-
}
25-
26-
if ($input->hasParameterOption('--no-debug', true)) {
27-
putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
28-
}
29-
30-
require dirname(__DIR__).'/config/bootstrap.php';
31-
32-
if ($_SERVER['APP_DEBUG']) {
33-
umask(0000);
34-
35-
if (class_exists(Debug::class)) {
36-
Debug::enable();
37-
}
38-
}
39-
40-
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
41-
$application = new Application($kernel);
42-
$application->run($input);
16+
return new Application($kernel);
17+
};

bin/phpunit

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)