Nextcloud Notes 开源项目教程
notes✎ Distraction-free notes and writing项目地址:https://gitcode.com/gh_mirrors/notes9/notes
1. 项目的目录结构及介绍
Nextcloud Notes 项目的目录结构如下:
nextcloud-notes/
├── appinfo/
│ ├── app.php
│ ├── info.xml
│ └── routes.php
├── css/
│ └── style.css
├── js/
│ └── script.js
├── l10n/
│ └── en.json
├── lib/
│ ├── Controller/
│ │ └── NoteController.php
│ ├── Db/
│ │ └── NoteMapper.php
│ ├── Migration/
│ │ └── Version20210101.php
│ └── Service/
│ └── NoteService.php
├── templates/
│ └── note.php
└── tests/
└── Unit/
└── NoteMapperTest.php
目录结构介绍
appinfo/
: 包含应用程序的元数据和路由配置。app.php
: 应用程序的入口文件。info.xml
: 应用程序的元数据信息。routes.php
: 路由配置文件。
css/
: 包含应用程序的样式文件。style.css
: 主要的样式文件。
js/
: 包含应用程序的JavaScript文件。script.js
: 主要的JavaScript文件。
l10n/
: 包含本地化文件。en.json
: 英语本地化文件。
lib/
: 包含应用程序的主要逻辑和数据库操作。Controller/
: 控制器类。Db/
: 数据库操作类。Migration/
: 数据库迁移文件。Service/
: 服务类。
templates/
: 包含应用程序的模板文件。note.php
: 笔记模板文件。
tests/
: 包含单元测试文件。Unit/
: 单元测试类。
2. 项目的启动文件介绍
Nextcloud Notes 项目的启动文件是 appinfo/app.php
。这个文件是应用程序的入口点,负责初始化应用程序并加载必要的组件。
appinfo/app.php
文件内容
<?php
namespace OCA\Notes\AppInfo;
use OCP\AppFramework\App;
use OCA\Notes\Controller\NoteController;
use OCA\Notes\Db\NoteMapper;
use OCA\Notes\Service\NoteService;
class Application extends App {
public function __construct(array $urlParams = []) {
parent::__construct('notes', $urlParams);
$container = $this->getContainer();
/**
* Controllers
*/
$container->registerService('NoteController', function($c) {
return new NoteController(
$c->query('AppName'),
$c->query('Request'),
$c->query('NoteService')
);
});
/**
* Services
*/
$container->registerService('NoteService', function($c) {
return new NoteService(
$c->query('NoteMapper')
);
});
/**
* Database
*/
$container->registerService('NoteMapper', function($c) {
return new NoteMapper(
$c->query('CoreService')
);
});
}
}
启动文件介绍
Application
类继承自OCP\AppFramework\App
类,是应用程序的主类。- 在构造函数中,初始化应用程序容器并注册必要的组件,包括控制器、服务和数据库映射器。
3. 项目的配置文件介绍
Nextcloud Notes 项目的配置文件主要位于 appinfo/
目录下。
appinfo/info.xml
文件内容
<?xml version="1.0"?>
<info>
<id>notes</id>
<name>Notes</name>
<description>A simple notes app for Nextcloud</description>
<version>1.0.0</version>
<licence>agpl</licence>
<author>Nextcloud</author>
<namespace>Notes</namespace>
<types>
<
notes✎ Distraction-free notes and writing项目地址:https://gitcode.com/gh_mirrors/notes9/notes