Entities: Fix type hint, fix queries

pull/3924/head
Julio Montoya 5 years ago
parent 9ea212fb03
commit ec20e00bee
  1. 2
      src/CoreBundle/Component/Resource/Template.php
  2. 3
      src/CoreBundle/Controller/AccountController.php
  3. 5
      src/CoreBundle/Controller/Admin/PluginsController.php
  4. 4
      src/CoreBundle/Controller/Api/BaseResourceFileAction.php
  5. 7
      src/CoreBundle/Controller/AssetController.php
  6. 11
      src/CoreBundle/Controller/CourseHomeController.php
  7. 24
      src/CoreBundle/Controller/ExceptionController.php
  8. 2
      src/CoreBundle/Controller/OnlineController.php
  9. 14
      src/CoreBundle/Controller/ResourceController.php
  10. 2
      src/CoreBundle/Controller/ToolController.php
  11. 3
      src/CoreBundle/Controller/UserController.php
  12. 7
      src/CoreBundle/Entity/AbstractResource.php
  13. 11
      src/CoreBundle/Entity/AccessUrl.php
  14. 4
      src/CoreBundle/Entity/Asset.php
  15. 10
      src/CoreBundle/Entity/BranchSync.php
  16. 32
      src/CoreBundle/Entity/Course.php
  17. 3
      src/CoreBundle/Entity/CourseCategory.php
  18. 8
      src/CoreBundle/Entity/GradebookCategory.php
  19. 7
      src/CoreBundle/Entity/Group.php
  20. 4
      src/CoreBundle/Entity/Level.php
  21. 8
      src/CoreBundle/Entity/Listener/ResourceNodeListener.php
  22. 2
      src/CoreBundle/Entity/Listener/UserListener.php
  23. 31
      src/CoreBundle/Entity/Profile.php
  24. 16
      src/CoreBundle/Entity/ResourceComment.php
  25. 7
      src/CoreBundle/Entity/ResourceLink.php
  26. 31
      src/CoreBundle/Entity/ResourceNode.php
  27. 10
      src/CoreBundle/Entity/ResourceType.php
  28. 5
      src/CoreBundle/Entity/Sequence.php
  29. 4
      src/CoreBundle/Entity/SequenceFormula.php
  30. 2
      src/CoreBundle/Entity/SequenceRowEntity.php
  31. 10
      src/CoreBundle/Entity/SequenceRuleCondition.php
  32. 4
      src/CoreBundle/Entity/SequenceRuleMethod.php
  33. 4
      src/CoreBundle/Entity/SequenceValid.php
  34. 2
      src/CoreBundle/Entity/SequenceValue.php
  35. 4
      src/CoreBundle/Entity/Session.php
  36. 2
      src/CoreBundle/Entity/SessionRelUser.php
  37. 12
      src/CoreBundle/Entity/Skill.php
  38. 4
      src/CoreBundle/Entity/SkillRelSkill.php
  39. 14
      src/CoreBundle/Entity/Usergroup.php
  40. 4
      src/CoreBundle/EventSubscriber/LocaleSubscriber.php
  41. 3
      src/CoreBundle/Framework/Container.php
  42. 6
      src/CoreBundle/Repository/AssetRepository.php
  43. 14
      src/CoreBundle/Repository/BranchSyncRepository.php
  44. 3
      src/CoreBundle/Repository/GroupRepository.php
  45. 2
      src/CoreBundle/Repository/MessageRepository.php
  46. 2
      src/CoreBundle/Repository/MessageTagRepository.php
  47. 4
      src/CoreBundle/Repository/Node/CourseRepository.php
  48. 2
      src/CoreBundle/Repository/Node/UserRepository.php
  49. 6
      src/CoreBundle/Repository/ResourceNodeRepository.php
  50. 12
      src/CoreBundle/Repository/ResourceRepository.php
  51. 3
      src/CoreBundle/Repository/SessionRepository.php
  52. 6
      src/CoreBundle/Repository/SysAnnouncementRepository.php
  53. 2
      src/CourseBundle/Entity/CForumPost.php
  54. 16
      src/CourseBundle/Entity/CForumThread.php
  55. 2
      src/CourseBundle/Entity/CLpItem.php
  56. 6
      src/CourseBundle/Entity/CShortcut.php
  57. 19
      src/CourseBundle/Entity/CSurvey.php
  58. 7
      src/CourseBundle/Repository/CLpItemRepository.php
  59. 2
      src/CourseBundle/Repository/CStudentPublicationRepository.php

@ -49,7 +49,7 @@ class Template
$this->upload = '@ChamiloCore/Resource/upload.html.twig';
}
public function getFromAction(string $action, $isAjax = false)
public function getFromAction(string $action, bool $isAjax = false): string
{
$action = str_replace('Action', '', $action);
if ($isAjax) {

@ -13,6 +13,7 @@ use Chamilo\CoreBundle\Repository\Node\UserRepository;
use Chamilo\CoreBundle\Traits\ControllerTrait;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\User\UserInterface;
@ -30,7 +31,7 @@ class AccountController extends BaseController
/**
* @Route("/edit", methods={"GET", "POST"}, name="chamilo_core_account_edit")
*/
public function editAction(Request $request, UserRepository $userRepository, IllustrationRepository $illustrationRepo)
public function editAction(Request $request, UserRepository $userRepository, IllustrationRepository $illustrationRepo): Response
{
$user = $this->getUser();

@ -9,6 +9,7 @@ namespace Chamilo\CoreBundle\Controller\Admin;
use AppPlugin;
use Chamilo\CoreBundle\Controller\BaseController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class PluginsController extends BaseController
@ -18,7 +19,7 @@ class PluginsController extends BaseController
*
* @Route("/plugins")
*/
public function pluginsAction()
public function pluginsAction(): Response
{
$appPlugin = new AppPlugin();
$installedPlugins = $appPlugin->getInstalledPlugins();
@ -36,7 +37,7 @@ class PluginsController extends BaseController
*
* @Route("/plugins/add")
*/
public function pluginsAddAction()
public function pluginsAddAction(): Response
{
$appPlugin = new AppPlugin();
$allPlugins = $appPlugin->read_plugins_from_path();

@ -25,7 +25,7 @@ use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
class BaseResourceFileAction
{
public static function setLinks(AbstractResource $resource, $em): void
public static function setLinks(AbstractResource $resource, EntityManager $em): void
{
$resourceNode = $resource->getResourceNode();
$links = $resource->getResourceLinkArray();
@ -219,7 +219,7 @@ class BaseResourceFileAction
];
}
protected function handleUpdateRequest(AbstractResource $resource, ResourceRepository $repo, Request $request, EntityManager $em)
protected function handleUpdateRequest(AbstractResource $resource, ResourceRepository $repo, Request $request, EntityManager $em): AbstractResource
{
$contentData = $request->getContent();
$resourceLinkList = [];

@ -12,6 +12,7 @@ use Chamilo\CoreBundle\Traits\ControllerTrait;
use League\MimeTypeDetection\ExtensionMimeTypeDetector;
use Symfony\Component\Filesystem\Exception\FileNotFoundException;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use Symfony\Component\HttpFoundation\StreamedResponse;
use Symfony\Component\Routing\Annotation\Route;
@ -25,12 +26,12 @@ class AssetController
* @Route("/{category}/{path}", methods={"GET"}, requirements={"path"=".+"}, name="chamilo_core_asset_showfile")
*/
public function showFile(
$category,
$path,
string $category,
string $path,
AssetRepository $assetRepository,
GlideAsset $glide,
RequestStack $requestStack
) {
): Response {
$filePath = $category.'/'.$path;
$exists = $assetRepository->getFileSystem()->fileExists($filePath);

@ -25,6 +25,7 @@ use ExtraFieldValue;
use Fhaculty\Graph\Graph;
use Security;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
@ -46,7 +47,7 @@ class CourseHomeController extends ToolBaseController
*
* @Entity("course", expr="repository.find(cid)")
*/
public function indexJsonAction(Request $request, CToolRepository $toolRepository, CShortcutRepository $shortcutRepository, ToolChain $toolChain)
public function indexJsonAction(Request $request, CToolRepository $toolRepository, CShortcutRepository $shortcutRepository, ToolChain $toolChain): Response
{
$course = $this->getCourse();
if (null === $course) {
@ -233,7 +234,7 @@ class CourseHomeController extends ToolBaseController
*
* @Route("/{cid}/tool/{toolName}", name="chamilo_core_course_redirect_tool")
*/
public function redirectTool(string $toolName, CToolRepository $repo, ToolChain $toolChain)
public function redirectTool(string $toolName, CToolRepository $repo, ToolChain $toolChain): RedirectResponse
{
/** @var CTool|null $tool */
$tool = $repo->findOneBy([
@ -257,7 +258,7 @@ class CourseHomeController extends ToolBaseController
return $this->redirect($url);
}
public function redirectToShortCut(string $toolName, CToolRepository $repo, ToolChain $toolChain)
public function redirectToShortCut(string $toolName, CToolRepository $repo, ToolChain $toolChain): RedirectResponse
{
/** @var CTool|null $tool */
$tool = $repo->findOneBy([
@ -287,10 +288,8 @@ class CourseHomeController extends ToolBaseController
* @Route("/{cid}/settings/{namespace}", name="chamilo_core_course_settings")
*
* @Entity("course", expr="repository.find(cid)")
*
* @return Response
*/
public function updateSettingsAction(Request $request, Course $course, string $namespace, SettingsCourseManager $manager, SettingsFormFactory $formFactory)
public function updateSettingsAction(Request $request, Course $course, string $namespace, SettingsCourseManager $manager, SettingsFormFactory $formFactory): Response
{
$schemaAlias = $manager->convertNameSpaceToService($namespace);
$settings = $manager->load($namespace);

@ -10,12 +10,13 @@ use Exception;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\ErrorHandler\Exception\FlattenException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Symfony\Component\Routing\Annotation\Route;
class ExceptionController extends AbstractController
{
public function showAction(Exception $exception)
public function showAction(Exception $exception): Response
{
if ('dev' === (string) $this->getParameter('app_env')) {
throw new HttpException($exception->getCode(), $exception->getMessage());
@ -28,24 +29,25 @@ class ExceptionController extends AbstractController
$format = 'html';
$loader = $this->container->get('twig')->getLoader();
$templateToLoad = sprintf('@ChamiloCore/Exception/%s.html.twig', 'exception_full');
// when not in debug, try to find a template for the specific HTTP status code and format
$template = sprintf('@ChamiloCore/Exception/%s%s.%s.twig', $name, $code, $format);
if ($loader->exists($template)) {
return $template;
$templateToLoad = $template;
}
// try to find a template for the given format
$template = sprintf('@ChamiloCore/Exception/%s.%s.twig', $name, $format);
if ($loader->exists($template)) {
return $template;
$templateToLoad = $template;
}
// default to a generic HTML exception
//$request->setRequestFormat('html');
//$template = sprintf('@ChamiloCore/Exception/%s.html.twig', $showException ? 'exception_full' : $name);
$template = sprintf('@ChamiloCore/Exception/%s.html.twig', 'exception_full');
return $this->render($template, [
return $this->render($templateToLoad, [
'exception' => $exception,
]);
}
@ -53,7 +55,7 @@ class ExceptionController extends AbstractController
/**
* @Route("/error")
*/
public function errorAction(Request $request)
public function errorAction(Request $request): Response
{
$message = $request->getSession()->get('error_message', '');
$exception = new FlattenException();
@ -67,25 +69,27 @@ class ExceptionController extends AbstractController
$code = $exception->getCode();
$format = 'html';
$loader = $this->container->get('twig')->getLoader();
$templateToLoad = sprintf('@ChamiloCore/Exception/%s.html.twig', 'exception_full');
// when not in debug, try to find a template for the specific HTTP status code and format
//if (!$showException) {
$template = sprintf('@ChamiloCore/Exception/%s%s.%s.twig', $name, $code, $format);
if ($loader->exists($template)) {
return $template;
$templateToLoad = $template;
}
//}
// try to find a template for the given format
$template = sprintf('@ChamiloCore/Exception/%s.%s.twig', $name, $format);
if ($loader->exists($template)) {
return $template;
$templateToLoad = $template;
}
// default to a generic HTML exception
//$request->setRequestFormat('html');
$template = sprintf('@ChamiloCore/Exception/%s.html.twig', 'exception_full');
return $this->render($template, [
return $this->render($templateToLoad, [
'exception' => $exception,
]);
}

@ -38,7 +38,7 @@ class OnlineController extends BaseController
/**
* @Route("/in_course/{cidReq}", name="online_users_in_course", methods={"GET", "POST"}, options={"expose"=true})
*/
public function onlineUsersInCoursesAction($cidReq): Response
public function onlineUsersInCoursesAction(string $cidReq): Response
{
// @todo don't use legacy code
$users = who_is_online_in_this_course(

@ -456,9 +456,9 @@ class ResourceController extends AbstractResourceController implements CourseCon
/**
* @deprecated Use Vue + api platform
*
* @Route("/{tool}/{type}/{id}/delete_mass", methods={"DELETE"}, name="chamilo_core_resource_delete_mass")
* Route("/{tool}/{type}/{id}/delete_mass", methods={"DELETE"}, name="chamilo_core_resource_delete_mass")
*/
public function deleteMassAction($primaryKeys, $allPrimaryKeys, Request $request): Response
/*public function deleteMassAction($primaryKeys, $allPrimaryKeys, Request $request): Response
{
$em = $this->getDoctrine()->getManager();
$repo = $this->getRepositoryFromRequest($request);
@ -489,7 +489,7 @@ class ResourceController extends AbstractResourceController implements CourseCon
$routeParams['id'] = $parentId;
return $this->redirectToRoute('chamilo_core_resource_list', $routeParams);
}
}*/
/**
* Shows the associated resource file.
@ -539,7 +539,7 @@ class ResourceController extends AbstractResourceController implements CourseCon
public function viewAction(Request $request): Response
{
$id = $request->get('id');
$filter = $request->get('filter'); // See filters definitions in /config/services.yml.
$filter = (string) $request->get('filter'); // See filters definitions in /config/services.yml.
$resourceNode = $this->getResourceNodeRepository()->find($id);
if (null === $resourceNode) {
@ -553,6 +553,8 @@ class ResourceController extends AbstractResourceController implements CourseCon
* Redirect resource to link.
*
* @Route("/{tool}/{type}/{id}/link", methods={"GET"}, name="chamilo_core_resource_link")
*
* @return RedirectResponse|void
*/
public function linkAction(Request $request, RouterInterface $router)
{
@ -578,6 +580,8 @@ class ResourceController extends AbstractResourceController implements CourseCon
* Download file of a resource node.
*
* @Route("/{tool}/{type}/{id}/download", methods={"GET"}, name="chamilo_core_resource_download")
*
* @return RedirectResponse|StreamedResponse
*/
public function downloadAction(Request $request)
{
@ -689,7 +693,7 @@ class ResourceController extends AbstractResourceController implements CourseCon
/**
* @return mixed|StreamedResponse
*/
private function processFile(Request $request, ResourceNode $resourceNode, $mode = 'show', $filter = '')
private function processFile(Request $request, ResourceNode $resourceNode, string $mode = 'show', string $filter = '')
{
$this->denyAccessUnlessGranted(
ResourceNodeVoter::VIEW,

@ -23,7 +23,7 @@ class ToolController extends AbstractController
* @Security("is_granted('ROLE_ADMIN')")
* @Route("/update", methods={"GET"})
*/
public function profileAction(ToolChain $toolChain)
public function profileAction(ToolChain $toolChain): Response
{
$toolChain->createTools();

@ -9,6 +9,7 @@ namespace Chamilo\CoreBundle\Controller;
use Chamilo\CoreBundle\Repository\Node\IllustrationRepository;
use Chamilo\CoreBundle\Repository\Node\UserRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\User\UserInterface;
@ -24,7 +25,7 @@ class UserController extends AbstractController
*
* @Route("/{username}", methods={"GET"}, name="chamilo_core_user_profile")
*/
public function profileAction(string $username, UserRepository $userRepository, IllustrationRepository $illustrationRepository)
public function profileAction(string $username, UserRepository $userRepository, IllustrationRepository $illustrationRepository): Response
{
$user = $userRepository->findByUsername($username);

@ -120,6 +120,9 @@ abstract class AbstractResource
//abstract public function setResourceProperties(FormInterface $form, $course, $session, $fileType);
/**
* @return ResourceLink[]
*/
public function getResourceLinkEntityList()
{
return $this->resourceLinkEntityList;
@ -338,7 +341,7 @@ abstract class AbstractResource
return $this;
}
public function getParentResourceNode()
public function getParentResourceNode(): ?int
{
return $this->parentResourceNode;
}
@ -348,7 +351,7 @@ abstract class AbstractResource
return null !== $this->uploadFile;
}
public function getUploadFile()
public function getUploadFile(): ?UploadedFile
{
return $this->uploadFile;
}

@ -258,7 +258,7 @@ class AccessUrl extends AbstractResource implements ResourceInterface
return $this;
}
public function getActive()
public function getActive(): int
{
return $this->active;
}
@ -404,6 +404,9 @@ class AccessUrl extends AbstractResource implements ResourceInterface
return $this;
}
/**
* @return Collection<int, SettingsCurrent>|SettingsCurrent[]
*/
public function getSettings()
{
return $this->settings;
@ -434,6 +437,9 @@ class AccessUrl extends AbstractResource implements ResourceInterface
return $this;
}
/**
* @return Collection<int, AccessUrlRelCourse>|AccessUrlRelCourse[]
*/
public function getCourses()
{
return $this->courses;
@ -449,6 +455,9 @@ class AccessUrl extends AbstractResource implements ResourceInterface
return $this;
}
/**
* @return SessionCategory[]|Collection
*/
public function getSessionCategories()
{
return $this->sessionCategories;

@ -286,7 +286,7 @@ class Asset
return $this->file;
}
public function hasFile()
public function hasFile(): bool
{
return null !== $this->file;
}
@ -307,7 +307,7 @@ class Asset
return $this;
}
public function getTitle()
public function getTitle(): string
{
return $this->title;
}

@ -574,9 +574,6 @@ class BranchSync
return $this->root;
}
/**
* @param BranchSync $parent
*/
public function setParent(self $parent = null): self
{
$this->parent = $parent;
@ -584,7 +581,7 @@ class BranchSync
return $this;
}
public function getParent()
public function getParent(): self
{
return $this->parent;
}
@ -597,10 +594,7 @@ class BranchSync
return $this->uniqueId;
}
/**
* @return $this
*/
public function setUniqueId(string $uniqueId)
public function setUniqueId(string $uniqueId): self
{
$this->uniqueId = $uniqueId;

@ -257,6 +257,9 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
/**
* @ApiSubresource()
* @Groups({"course:read", "course:write", "course_rel_user:read"})
*
* @var CourseCategory[]|Collection
*
* @ORM\ManyToMany(targetEntity="Chamilo\CoreBundle\Entity\CourseCategory", inversedBy="courses")
* @ORM\JoinTable(
* name="course_rel_category",
@ -417,17 +420,23 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return $this->getTitle();
}
/**
* @return SessionRelCourse[]|ArrayCollection|Collection
*/
public function getSessions()
{
return $this->sessions;
}
/**
* @return CTool[]|ArrayCollection|Collection
*/
public function getTools()
{
return $this->tools;
}
public function setTools(array $tools)
public function setTools(array $tools): self
{
foreach ($tools as $tool) {
$this->addTool($tool);
@ -436,7 +445,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return $this;
}
public function addTool(CTool $tool)
public function addTool(CTool $tool): self
{
$tool->setCourse($this);
$this->tools->add($tool);
@ -452,7 +461,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return $this->urls;
}
public function setUrls(Collection $urls)
public function setUrls(Collection $urls): self
{
$this->urls = new ArrayCollection();
foreach ($urls as $url) {
@ -462,7 +471,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return $this;
}
public function addUrlRelCourse(AccessUrlRelCourse $accessUrlRelCourse)
public function addUrlRelCourse(AccessUrlRelCourse $accessUrlRelCourse): self
{
$accessUrlRelCourse->setCourse($this);
$this->urls->add($accessUrlRelCourse);
@ -510,7 +519,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return $this->users->matching($criteria);
}
public function setUsers(Collection $users)
public function setUsers(Collection $users): self
{
$this->users = new ArrayCollection();
@ -521,7 +530,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return $this;
}
public function addUsers(CourseRelUser $courseRelUser)
public function addUsers(CourseRelUser $courseRelUser): self
{
$courseRelUser->setCourse($this);
@ -580,14 +589,14 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
}
}
public function addTeacher(User $user)
public function addTeacher(User $user): self
{
$this->addUser($user, 0, 'Trainer', User::COURSE_MANAGER);
return $this;
}
public function addStudent(User $user)
public function addStudent(User $user): self
{
$this->addUser($user, 0, '', User::STUDENT);
@ -656,7 +665,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return $this->title;
}
public function getName()
public function getName(): string
{
return $this->getTitle();
}
@ -685,6 +694,9 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return $this;
}
/**
* @return CourseCategory[]|Collection
*/
public function getCategories()
{
return $this->categories;
@ -1123,7 +1135,7 @@ class Course extends AbstractResource implements ResourceInterface, ResourceWith
return false;
}
public function addUser(User $user, int $relationType, $role, int $status): self
public function addUser(User $user, int $relationType, string $role, int $status): self
{
$courseRelUser = new CourseRelUser();
$courseRelUser->setCourse($this);

@ -314,6 +314,9 @@ class CourseCategory
return $this->urls;
}
/**
* @param AccessUrlRelCourseCategory[]|Collection $urls
*/
public function setUrls($urls): self
{
$this->urls = $urls;

@ -463,7 +463,7 @@ class GradebookCategory
/**
* @param GradebookEvaluation[]|Collection $evaluations
*/
public function setEvaluations(Collection $evaluations)
public function setEvaluations(Collection $evaluations): self
{
$this->evaluations = $evaluations;
@ -488,6 +488,9 @@ class GradebookCategory
return $this;
}
/**
* @return GradebookCategory[]|Collection
*/
public function getSubCategories()
{
return $this->subCategories;
@ -529,6 +532,9 @@ class GradebookCategory
return $this;
}
/**
* @return SkillRelGradebook[]|Collection
*/
public function getSkills()
{
return $this->skills;

@ -60,7 +60,7 @@ class Group
return $this->getName() ?: '';
}
public function addRole(string $role)
public function addRole(string $role): self
{
if (!$this->hasRole($role)) {
$this->roles[] = strtoupper($role);
@ -79,7 +79,7 @@ class Group
return $this->roles;
}
public function removeRole($role): self
public function removeRole(string $role): self
{
if (false !== $key = array_search(strtoupper($role), $this->roles, true)) {
unset($this->roles[$key]);
@ -118,6 +118,9 @@ class Group
return $this->id;
}
/**
* @return User[]|Collection
*/
public function getUsers()
{
return $this->users;

@ -80,7 +80,7 @@ class Level
return $this;
}
public function getPosition()
public function getPosition(): int
{
return $this->position;
}
@ -92,7 +92,7 @@ class Level
return $this;
}
public function getShortName()
public function getShortName(): string
{
return $this->shortName;
}

@ -39,10 +39,10 @@ class ResourceNodeListener
$this->resourceNodeRepository = $resourceNodeRepository;
}
public function prePersist(ResourceNode $resourceNode, LifecycleEventArgs $event)
/*public function prePersist(ResourceNode $resourceNode, LifecycleEventArgs $event)
{
return true;
}
}*/
/**
* When updating a Resource.
@ -64,7 +64,7 @@ class ResourceNodeListener
return true;
}
public function postUpdate(ResourceNode $resourceNode, LifecycleEventArgs $event): void
/*public function postUpdate(ResourceNode $resourceNode, LifecycleEventArgs $event): void
{
}
}*/
}

@ -44,7 +44,7 @@ class UserListener
$creator = $user->getResourceNodeCreator();
if (null === $creator) {
/** @var User|null $creator */
/** @var User|null $defaultCreator */
$defaultCreator = $this->security->getUser();
if (null !== $defaultCreator) {
$creator = $defaultCreator;

@ -51,12 +51,9 @@ class Profile
$this->levels = new ArrayCollection();
}
/**
* @return string
*/
public function __toString()
public function __toString(): string
{
return (string) $this->getName();
return $this->getName();
}
/**
@ -67,48 +64,48 @@ class Profile
return $this->id;
}
/**
* @return string
*/
public function getName()
public function getName(): string
{
return $this->name;
}
/**
* @return Profile
*/
public function setName(string $name)
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
/**
* @return Skill[]|Collection
*/
public function getSkills()
{
return $this->skills;
}
/**
* @return Profile
* @param Skill[]|Collection $skills
*/
public function setSkills($skills)
public function setSkills($skills): self
{
$this->skills = $skills;
return $this;
}
/**
* @return Level[]|Collection
*/
public function getLevels()
{
return $this->levels;
}
/**
* @return Profile
* @param Collection $levels
*/
public function setLevels($levels)
public function setLevels($levels): self
{
$this->levels = $levels;

@ -91,7 +91,7 @@ class ResourceComment
protected DateTime $updatedAt;
/**
* @var ArrayCollection|ResourceComment[]
* @var Collection|ResourceComment[]
*
* @ORM\OneToMany(
* targetEntity="ResourceComment",
@ -108,7 +108,7 @@ class ResourceComment
$this->children = new ArrayCollection();
}
public function getId()
public function getId(): int
{
return $this->id;
}
@ -125,7 +125,7 @@ class ResourceComment
return $this;
}
public function getResourceNode()
public function getResourceNode(): ResourceNode
{
return $this->resourceNode;
}
@ -149,7 +149,7 @@ class ResourceComment
return $this;
}
public function getParent()
public function getParent(): ?self
{
return $this->parent;
}
@ -161,12 +161,18 @@ class ResourceComment
return $this;
}
/**
* @return ResourceComment[]|Collection
*/
public function getChildren()
{
return $this->children;
}
public function setChildren($children): self
/**
* @param ResourceComment[]|Collection $children
*/
public function setChildren(Collection $children): self
{
$this->children = $children;

@ -114,7 +114,7 @@ class ResourceLink
return (string) $this->getId();
}
public function getStartVisibilityAt()
public function getStartVisibilityAt(): ?DateTimeInterface
{
return $this->startVisibilityAt;
}
@ -126,7 +126,7 @@ class ResourceLink
return $this;
}
public function getEndVisibilityAt()
public function getEndVisibilityAt(): ?DateTimeInterface
{
return $this->endVisibilityAt;
}
@ -138,6 +138,9 @@ class ResourceLink
return $this;
}
/**
* @param ResourceRight[]|Collection $rights
*/
public function setResourceRights($rights): self
{
$this->resourceRights = $rights;

@ -211,9 +211,9 @@ class ResourceNode
$this->fileEditableText = false;
}
public function __toString()
public function __toString(): string
{
return (string) $this->getPathForDisplay();
return $this->getPathForDisplay();
}
/**
@ -301,26 +301,26 @@ class ResourceNode
return $this->comments;
}
public function addComment(ResourceComment $comment)
public function addComment(ResourceComment $comment): self
{
$comment->setResourceNode($this);
return $this->comments->add($comment);
$this->comments->add($comment);
return $this;
}
/**
* Returns the path cleaned from its ids.
* Eg.: "Root/subdir/file.txt".
*
* @return string
*/
public function getPathForDisplay()
public function getPathForDisplay(): string
{
return $this->path;
//return $this->convertPathForDisplay($this->path);
}
public function getPathForDisplayToArray($baseRoot = null)
public function getPathForDisplayToArray(?int $baseRoot = null): array
{
$parts = explode(self::PATH_SEPARATOR, $this->path);
$list = [];
@ -349,17 +349,17 @@ class ResourceNode
return $this->convertPathForDisplay($path);
}
public function getSlug()
public function getSlug(): string
{
return $this->slug;
}
public function getTitle()
public function getTitle(): string
{
return $this->title;
}
public function setTitle(string $title)
public function setTitle(string $title): self
{
$title = str_replace('/', '-', $title);
@ -381,10 +381,8 @@ class ResourceNode
/**
* Convert a path for display: remove ids.
*
* @return string
*/
public function convertPathForDisplay(string $path)
public function convertPathForDisplay(string $path): string
{
/*$pathForDisplay = preg_replace(
'/-\d+'.self::PATH_SEPARATOR.'/',
@ -437,6 +435,9 @@ class ResourceNode
return $this;
}
/**
* @param Collection|ResourceLink[] $resourceLinks
*/
public function setResourceLinks($resourceLinks): self
{
$this->resourceLinks = $resourceLinks;
@ -563,7 +564,7 @@ class ResourceNode
return '<i class="'.$class.'"></i>';
}
public function getContent()
public function getContent(): string
{
return $this->content;
}

@ -57,7 +57,7 @@ class ResourceType
return $this->name;
}
public function getId()
public function getId(): int
{
return $this->id;
}
@ -89,11 +89,19 @@ class ResourceType
return $this;
}
/**
* @return ResourceNode[]|Collection
*/
public function getResourceNodes()
{
return $this->resourceNodes;
}
/**
* @param ResourceNode[]|Collection $resourceNodes
*
* @return $this
*/
public function setResourceNodes($resourceNodes): self
{
$this->resourceNodes = $resourceNodes;

@ -76,9 +76,6 @@ class Sequence
return $this->graph;
}
/**
* @return Sequence
*/
public function setGraph(string $graph): self
{
$this->graph = $graph;
@ -102,7 +99,7 @@ class Sequence
return unserialize($this->graph);
}
public function setGraphAndSerialize($graph): self
public function setGraphAndSerialize(Graph $graph): self
{
$this->setGraph(serialize($graph));

@ -45,7 +45,7 @@ class SequenceFormula
return $this->id;
}
public function getMethod()
public function getMethod(): ?SequenceMethod
{
return $this->method;
}
@ -57,7 +57,7 @@ class SequenceFormula
return $this;
}
public function getVariable()
public function getVariable(): ?SequenceVariable
{
return $this->variable;
}

@ -131,7 +131,7 @@ class SequenceRowEntity
return $this;
}
public function getType()
public function getType(): ?SequenceTypeEntity
{
return $this->type;
}

@ -45,14 +45,11 @@ class SequenceRuleCondition
return $this->id;
}
public function getRule()
public function getRule(): ?SequenceRule
{
return $this->rule;
}
/**
* @return SequenceRuleCondition
*/
public function setRule(?SequenceRule $rule): self
{
$this->rule = $rule;
@ -60,14 +57,11 @@ class SequenceRuleCondition
return $this;
}
public function getCondition()
public function getCondition(): ?SequenceCondition
{
return $this->condition;
}
/**
* @return SequenceRuleCondition
*/
public function setCondition(?SequenceCondition $condition): self
{
$this->condition = $condition;

@ -65,7 +65,7 @@ class SequenceRuleMethod
return $this;
}
public function getRule()
public function getRule(): ?SequenceRule
{
return $this->rule;
}
@ -77,7 +77,7 @@ class SequenceRuleMethod
return $this;
}
public function getMethod()
public function getMethod(): SequenceMethod
{
return $this->method;
}

@ -43,7 +43,7 @@ class SequenceValid
return $this->id;
}
public function getVariable()
public function getVariable(): ?SequenceVariable
{
return $this->variable;
}
@ -58,7 +58,7 @@ class SequenceValid
return $this;
}
public function getCondition()
public function getCondition(): ?SequenceCondition
{
return $this->condition;
}

@ -89,7 +89,7 @@ class SequenceValue
return $this->id;
}
public function getEntity()
public function getEntity(): ?SequenceRowEntity
{
return $this->entity;
}

@ -499,7 +499,7 @@ class Session implements ResourceWithAccessUrlInterface
return $this->hasUserInCourse($user, $course, self::COACH);
}
public function getUserInCourse(User $user, Course $course, $status = null): Collection
public function getUserInCourse(User $user, Course $course, ?int $status = null): Collection
{
$criteria = Criteria::create()
->where(
@ -528,7 +528,7 @@ class Session implements ResourceWithAccessUrlInterface
return $this->getSessionRelCourseRelUsers()->matching($criteria);
}
public function getSessionRelCourseByUser(User $user, $status = null): Collection
public function getSessionRelCourseByUser(User $user, ?int $status = null): Collection
{
$criteria = Criteria::create()
->where(

@ -138,7 +138,7 @@ class SessionRelUser
$this->registeredAt = new DateTime('now', new DateTimeZone('UTC'));
}
public function getCourses()
public function getCourses(): Collection
{
return $this->session->getSessionRelCourseByUser($this->getUser());
}

@ -138,24 +138,24 @@ class Skill
$this->status = self::STATUS_ENABLED;
}
public function __toString()
public function __toString(): string
{
return (string) $this->getName();
return $this->getName();
}
public function setName(string $name)
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getName()
public function getName(): string
{
return $this->name;
}
public function getShortCode()
public function getShortCode(): string
{
return $this->shortCode;
}
@ -174,7 +174,7 @@ class Skill
return $this;
}
public function getDescription()
public function getDescription(): string
{
return $this->description;
}

@ -79,12 +79,12 @@ class SkillRelSkill
return $this;
}
public function getLevel()
public function getLevel(): int
{
return $this->level;
}
public function getId()
public function getId(): int
{
return $this->id;
}

@ -135,11 +135,17 @@ class Usergroup extends AbstractResource implements ResourceInterface, ResourceI
return $this->getName();
}
/**
* @return UsergroupRelUser[]|Collection
*/
public function getUsers()
{
return $this->users;
}
/**
* @return AccessUrlRelUserGroup[]|Collection
*/
public function getUrls()
{
return $this->urls;
@ -163,7 +169,7 @@ class Usergroup extends AbstractResource implements ResourceInterface, ResourceI
return $this;
}
public function setUsers($users): void
public function setUsers(Collection $users): void
{
$this->users = new ArrayCollection();
@ -172,10 +178,12 @@ class Usergroup extends AbstractResource implements ResourceInterface, ResourceI
}
}
public function addUsers(UsergroupRelUser $user): void
public function addUsers(UsergroupRelUser $user): self
{
$user->setUsergroup($this);
$this->users[] = $user;
return $this;
}
public function removeUsers(UsergroupRelUser $user): void
@ -322,7 +330,7 @@ class Usergroup extends AbstractResource implements ResourceInterface, ResourceI
return $this->questions;
}
public function setQuestions(Collection $questions)
public function setQuestions(Collection $questions): self
{
$this->questions = $questions;

@ -30,7 +30,7 @@ class LocaleSubscriber implements EventSubscriberInterface
$this->parameterBag = $parameterBag;
}
public function onKernelRequest(RequestEvent $event)
public function onKernelRequest(RequestEvent $event): void
{
$request = $event->getRequest();
if (!$request->hasPreviousSession()) {
@ -59,7 +59,7 @@ class LocaleSubscriber implements EventSubscriberInterface
$locale = $request->getSession()->get('_locale');
$request->setLocale($locale);
return true;
return;
}
// Try to see if the locale has been set as a _locale routing parameter (from lang switcher)

@ -95,6 +95,9 @@ class Container
self::$container = $container;
}
/**
* @return array|bool|float|int|string|null
*/
public static function getParameter(string $parameter)
{
if (self::$container->hasParameter($parameter)) {

@ -33,12 +33,12 @@ class AssetRepository extends ServiceEntityRepository
$this->storage = $storage;
}
public function getStorage()
public function getStorage(): FlysystemStorage
{
return $this->storage;
}
public function getFileSystem()
public function getFileSystem(): FilesystemOperator
{
return $this->filesystem;
}
@ -103,7 +103,7 @@ class AssetRepository extends ServiceEntityRepository
return '/assets'.$helper->asset($asset).$cropFilter;
}
public function createFromRequest(Asset $asset, $file): Asset
public function createFromRequest(Asset $asset, array $file): Asset
{
if (isset($file['tmp_name']) && !empty($file['tmp_name'])) {
$mimeType = mime_content_type($file['tmp_name']);

@ -7,12 +7,16 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\BranchSync;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\DBAL\Types\Types;
use Gedmo\Tree\Entity\Repository\NestedTreeRepository;
class BranchSyncRepository extends NestedTreeRepository
{
/**
* @return BranchSync[]|Collection
*/
public function searchByKeyword(string $keyword)
{
$qb = $this->createQueryBuilder('a');
@ -37,7 +41,7 @@ class BranchSyncRepository extends NestedTreeRepository
/**
* Gets the first branch with parent_id = NULL.
*/
public function getTopBranch()
public function getTopBranch(): ?BranchSync
{
$qb = $this->createQueryBuilder('a');
@ -49,12 +53,6 @@ class BranchSyncRepository extends NestedTreeRepository
$qb->orderBy('b.id', Criteria::ASC);
$qb->setMaxResults(1);
$q = $qb->getQuery()->getResult();
if (empty($q)) {
return null;
}
foreach ($q as $result) {
return $result;
}
return $qb->getQuery()->getOneOrNullResult();
}
}

@ -10,6 +10,7 @@ use Chamilo\CoreBundle\DataFixtures\AccessGroupFixtures;
use Chamilo\CoreBundle\Entity\Group;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Common\Collections\Collection;
use Doctrine\Persistence\ManagerRegistry;
class GroupRepository extends ServiceEntityRepository
@ -20,7 +21,7 @@ class GroupRepository extends ServiceEntityRepository
}
/**
* @return User[]
* @return User[]|Collection
*/
public function getAdmins()
{

@ -17,7 +17,7 @@ class MessageRepository extends ServiceEntityRepository
parent::__construct($registry, Message::class);
}
public function update(Message $message, $andFlush = true): void
public function update(Message $message, bool $andFlush = true): void
{
$this->getEntityManager()->persist($message);
if ($andFlush) {

@ -17,7 +17,7 @@ class MessageTagRepository extends SortableRepository
parent::__construct($em, $em->getClassMetadata(MessageTag::class));
}
public function update(MessageTag $message, $andFlush = true): void
public function update(MessageTag $message, bool $andFlush = true): void
{
$this->getEntityManager()->persist($message);
if ($andFlush) {

@ -14,7 +14,7 @@ use Chamilo\CoreBundle\Entity\ResourceNode;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\ResourceRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Query\Expr\Join;
use Doctrine\ORM\QueryBuilder;
@ -33,7 +33,7 @@ class CourseRepository extends ResourceRepository
}
/**
* @return ArrayCollection
* @return Collection
*/
public function getTools(Course $course, Session $session = null)
{

@ -669,7 +669,7 @@ class UserRepository extends ResourceRepository implements PasswordUpgraderInter
return $qb;
}
private function addSearchByKeywordQueryBuilder($keyword, QueryBuilder $qb = null): QueryBuilder
private function addSearchByKeywordQueryBuilder(string $keyword, QueryBuilder $qb = null): QueryBuilder
{
$qb = $this->getOrCreateQueryBuilder($qb, 'u');
$qb

@ -47,7 +47,7 @@ class ResourceNodeRepository extends MaterializedPathRepository
$this->getEntityManager()->flush();
}
public function update(ResourceNode $node, $andFlush = true): void
public function update(ResourceNode $node, bool $andFlush = true): void
{
//$node->setUpdatedAt(new \DateTime());
$this->getEntityManager()->persist($node);
@ -56,7 +56,7 @@ class ResourceNodeRepository extends MaterializedPathRepository
}
}*/
public function getFileSystem()
public function getFileSystem(): FilesystemOperator
{
return $this->filesystem;
}
@ -96,7 +96,7 @@ class ResourceNodeRepository extends MaterializedPathRepository
}
}
public function getResourceFileUrl(ResourceNode $resourceNode, array $extraParams = [], $referenceType = null): string
public function getResourceFileUrl(ResourceNode $resourceNode, array $extraParams = [], ?int $referenceType = null): string
{
try {
if ($resourceNode->hasResourceFile()) {

@ -187,6 +187,9 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $qb->getQuery()->getOneOrNullResult();
}
/**
* @return ResourceInterface[]
*/
public function findCourseResourcesByTitle(
string $title,
ResourceNode $parentNode,
@ -203,7 +206,7 @@ abstract class ResourceRepository extends ServiceEntityRepository
/**
* @todo clean path
*/
public function addFileFromPath(ResourceInterface $resource, string $fileName, string $path, bool $flush = true)
public function addFileFromPath(ResourceInterface $resource, string $fileName, string $path, bool $flush = true): ?ResourceFile
{
if (!empty($path) && file_exists($path) && !is_dir($path)) {
$mimeType = mime_content_type($path);
@ -542,19 +545,22 @@ abstract class ResourceRepository extends ServiceEntityRepository
return $this->resourceNodeRepository->getResourceNodeFileContent($resourceNode);
}
/**
* @return false|resource
*/
public function getResourceNodeFileStream(ResourceNode $resourceNode)
{
return $this->resourceNodeRepository->getResourceNodeFileStream($resourceNode);
}
public function getResourceFileDownloadUrl(AbstractResource $resource, array $extraParams = [], $referenceType = null): string
public function getResourceFileDownloadUrl(AbstractResource $resource, array $extraParams = [], ?int $referenceType = null): string
{
$extraParams['mode'] = 'download';
return $this->getResourceFileUrl($resource, $extraParams, $referenceType);
}
public function getResourceFileUrl(AbstractResource $resource, array $extraParams = [], $referenceType = null): string
public function getResourceFileUrl(AbstractResource $resource, array $extraParams = [], ?int $referenceType = null): string
{
return $this->getResourceNodeRepository()->getResourceFileUrl(
$resource->getResourceNode(),

@ -15,6 +15,7 @@ use Chamilo\CoreBundle\Entity\SessionRelUser;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query\Expr\Join;
use Doctrine\ORM\QueryBuilder;
use Doctrine\Persistence\ManagerRegistry;
/**
@ -137,7 +138,7 @@ class SessionRepository extends ServiceEntityRepository
}
}
private function addSessionRelUserFilterByUrl(Session $session, AccessUrl $url)
private function addSessionRelUserFilterByUrl(Session $session, AccessUrl $url): QueryBuilder
{
$qb = $this->getEntityManager()->createQueryBuilder();
$qb

@ -31,7 +31,7 @@ class SysAnnouncementRepository extends ServiceEntityRepository
$this->security = $security;
}
public function getVisibilityList()
public function getVisibilityList(): array
{
$hierarchy = $this->parameterBag->get('security.role_hierarchy.roles');
$roles = [];
@ -181,7 +181,7 @@ class SysAnnouncementRepository extends ServiceEntityRepository
return $qb;
}
public function update(SysAnnouncement $sysAnnouncement, $andFlush = true): void
public function update(SysAnnouncement $sysAnnouncement, bool $andFlush = true): void
{
$this->getEntityManager()->persist($sysAnnouncement);
if ($andFlush) {
@ -189,7 +189,7 @@ class SysAnnouncementRepository extends ServiceEntityRepository
}
}
public function delete($id): void
public function delete(int $id): void
{
$announcement = $this->find($id);
if (null !== $announcement) {

@ -131,7 +131,7 @@ class CForumPost extends AbstractResource implements ResourceInterface
return $this;
}
public function getPostTitle()
public function getPostTitle(): string
{
return $this->postTitle;
}

@ -166,7 +166,7 @@ class CForumThread extends AbstractResource implements ResourceInterface
return $this;
}
public function getThreadTitle()
public function getThreadTitle(): string
{
return $this->threadTitle;
}
@ -195,12 +195,7 @@ class CForumThread extends AbstractResource implements ResourceInterface
return $this;
}
/**
* Get threadReplies.
*
* @return int
*/
public function getThreadReplies()
public function getThreadReplies(): int
{
return $this->threadReplies;
}
@ -212,12 +207,7 @@ class CForumThread extends AbstractResource implements ResourceInterface
return $this;
}
/**
* Get threadViews.
*
* @return int
*/
public function getThreadViews()
public function getThreadViews(): int
{
return $this->threadViews;
}

@ -579,7 +579,7 @@ class CLpItem
return $this->lvl;
}
public function setLvl($lvl): self
public function setLvl(int $lvl): self
{
$this->lvl = $lvl;

@ -66,7 +66,7 @@ class CShortcut extends AbstractResource implements ResourceInterface
return $this->name;
}
public function getUrl()
public function getUrl(): string
{
return '/r/'.$this->getShortCutNode()->getResourceType()->getTool()->getName().
'/'.$this->getShortCutNode()->getResourceType()->getName().
@ -74,12 +74,12 @@ class CShortcut extends AbstractResource implements ResourceInterface
'/link';
}
public function getTool()
public function getTool(): string
{
return $this->getShortCutNode()->getResourceType()->getTool()->getName();
}
public function getType()
public function getType(): string
{
return $this->getShortCutNode()->getResourceType()->getName();
}

@ -756,14 +756,6 @@ class CSurvey extends AbstractResource implements ResourceInterface
return $this;
}
/**
* @return CSurveyInvitation[]|Collection
*/
public function getInvitations()
{
return $this->invitations;
}
/**
* @return CSurveyQuestionOption[]|Collection
*/
@ -779,6 +771,17 @@ class CSurvey extends AbstractResource implements ResourceInterface
return $this;
}
/**
* @return CSurveyInvitation[]|Collection
*/
public function getInvitations()
{
return $this->invitations;
}
/**
* @param CSurveyInvitation[]|Collection $invitations
*/
public function setInvitations($invitations): self
{
$this->invitations = $invitations;

@ -24,7 +24,7 @@ final class CLpItemRepository extends ServiceEntityRepository
$this->initializeTreeRepository($this->getEntityManager(), $this->getClassMetadata());
}
public function getRootItem($lpId): ?CLpItem
public function getRootItem(int $lpId): ?CLpItem
{
return $this->findOneBy([
'path' => 'root',
@ -32,7 +32,10 @@ final class CLpItemRepository extends ServiceEntityRepository
]);
}
public function getTree($lpId)
/**
* @return CLpItem[]
*/
public function getTree(int $lpId)
{
$qb = $this->createQueryBuilder('i');
$qb

@ -59,7 +59,7 @@ final class CStudentPublicationRepository extends ResourceRepository
return $qb;
}
public function getStudentPublicationByUser(User $user, Course $course, Session $session = null)
public function getStudentPublicationByUser(User $user, Course $course, Session $session = null): array
{
$qb = $this->findAllByCourse($course, $session);
/** @var CStudentPublication[] $works */

Loading…
Cancel
Save