nextcloud / nextcloud/cookbook

Refactoring of the services in the backend

Open
#299 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Backend enhancement maintenance php
Dominant language
HTML
Stars
641
Forks
113
Avg merge
21h 31m
Merged PRs (30d)
26

Description

Is your feature request related to a problem? Please describe.
The idea behind a service is a single topic. The current services do not stick to this pattern. In fact, when #298 should be implemented, clearly separated and small classes are needed to make the test useful.

Describe the solution you'd like
A complete refactory of the services and rework of current PHP file structure would be involved. First, logical parts should be identified and these should then be implemented piece by piece.

I started to work on some of these refactorings due to my work in PR #297. However I did not want to blow up that PR too much and also not blow up any currently ongoing development.
A first step might be to define a rough time schedule to synchronize any currently ongoing development.

To make dependency injection work smoothly, it would maybe be a good idea to have "a single service to rule them all".

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the current services and PHP file structure, then read PR #297 and issue #298 for the related context. The work is complete when the logical service parts are agreed, separated and implemented incrementally without disrupting ongoing development, with dependency injection supported.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.